public class Country
{
public int CountryId { get; set; }
public string CountryText { get; set; }
public List<City> Cities { get; set; }
}
Found out some (not-so)obscure syntax allowed in C#, whereas given the above class, this is allowed, albeit has null runtime exception on Cities:
public List<Country> Countries = new List<Country>
{
new Country
{
CountryId = 1, CountryText = "Philippines",
Cities =
{
new City { CityId = 1, CityText = "Manila" },
new City { CityId = 2, CityText = "Makati" },
new City { CityId = 3, CityText = "Quezon" }
}
}
};
Where normally, I do it as this:
public List<Country> Countries = new List<Country>
{
new Country
{
CountryId = 1, CountryText = "Philippines",
Cities = new List<City>
{
new City { CityId = 1, CityText = "Manila" },
new City { CityId = 2, CityText = "Makati" },
new City { CityId = 3, CityText = "Quezon" }
}
}
};
If you don't want to use new List<City> in collection initializer, assign it an instance first, otherwise the collection initializer would result to null runtime exception. The following could allow no new List<City> on collection initializer:
public class Country
{
public int CountryId { get; set; }
public string CountryText { get; set; }
public List<City> Cities = new List<City>(); // instantiate List
}
But that would break the sanctity of everything-must-be-a-property, property makes your code more future-proof
No comments:
Post a Comment