如果初始化可能会抛出异常,我应该避免使用Lazy <t>类吗?

时间:2015-06-25 07:03:11

标签: c#-4.0 lazy-initialization

鉴于我expose公共API中的Lazy<T>。如果延迟初始化可能会抛出exogenous exception,我应该避免这样的设计吗?

访问Value属性时会抛出异常。并且property getters should not throw exceptions。另一方面,Lazy<T>在将初始化异常传递给Value属性getter的区域中精心设计并有详细记录。

1 个答案:

答案 0 :(得分:0)

在这种情况下,最好公开一个方法,并让懒惰成为实现细节。

出于与属性设计指南中所述相同的原因,请不要使用延迟初始化来实现公共属性,以免引发异常。