В классе с ленивым загруженным свойством, например:
private Collection<int> someInts;
public Collection<int> SomeInts
{
get
{
if (this.someInts == null) this.someInts = new Collection<int>();
return this.someInts;
}
}
Стоит ли иметь такое свойство, как:
public bool SomeIntsExist
{
get { return (this.someInts != null && this.someInts.Count > 0); }
}
А затем используя это свойство .. например:
if (thatClass.SomeIntsExist)
{
// do something with thatClass.SomeInts collection
}
или это преждевременная оптимизация. Его, конечно, легче свернуть чем-то вроде ниже, но он будет создавать экземпляр коллекции без необходимости:
if (thatClass.SomeInts.Count > 0)
{
// do something with thatClass.SomeInts collection
}
Достаточно ли умен компилятор, чтобы понять такие вещи? Есть ли лучший способ?