A common misunderstanding, especially beginners, have is read-only property is the one marked with readonly
keyword. That's not correct and in fact following is a compile time error:
public readonly string SomeProp { get; set; }
A property is read-only when it only has a getter.
public string SomeProp { get; }
public Address
{
public string ZipCode { get; }
public string City { get; }
public string StreetAddress { get; }
public Address(
string zipCode,
string city,
string streetAddress)
{
if (zipCode == null)
throw new ArgumentNullException(nameof(zipCode));
if (city == null)
throw new ArgumentNullException(nameof(city));
if (streetAddress == null)
throw new ArgumentNullException(nameof(streetAddress));
ZipCode = zipCode;
City = city;
StreetAddress = streetAddress;
}
}