За virtual
участниками скрытого поведения нет. За исключением того факта, что они могут быть переопределены в дочерних классах.
Ленивая загрузка может быть достигнута с использованием класса Lazy<T>
. В котором T является типом, который будет загружен. Это неявно преобразуется в T
.
Или, если вы хотите вручную настроить свойства так, чтобы они вели себя лениво, вы можете использовать что-то вроде этого:
private SomeType _someProperty = null;
public override SomeType SomeProperty
{
get
{
if (_someProperty == null)
{
// Load _someProperty
}
return _someProperty;
}
}
С помощью ValueTypes вы можете сделать их Nullable<T>
. Или введите bool
независимо от того, загружены они или нет.