我经常会有具有使用以下模式的属性的对象:
private decimal? _blah;
private decimal Blah
{
get
{
if (_blah == null)
_blah = InitBlah();
return _blah.Value;
}
}
此方法有名称吗?
答案 0 :(得分:16)
.NET 4,当它到达时,将内置Lazy<T>
类。
private readonly Lazy<decimal> _blah = new Lazy<decimal>(() => InitBlah());
public decimal Blah
{
get { return _blah.Value; }
}
答案 1 :(得分:10)
延迟加载,延迟初始化等
Noet InitBlah
应该(在这种情况下)理想地返回decimal
,而不是decimal?
,以避免它被多次调用的可能性,因为它是合法的null。
答案 2 :(得分:1)
答案 3 :(得分:0)
这称为延迟初始化
答案 4 :(得分:-1)
懒惰的初始化程序