不要认为这是可能的,但我想我会问,也许有人可能会提出替代技术或模式。
假设我有一个Customer类,其中包含与外部源分开拉出的Books列表。如果Customer类成功但书籍加载失败,我不想抛出异常,除非客户端试图访问Books属性,所以..
this.Books = new List<Book>()
{
throw new Exception("Books couldn't load because blah blah");
};
这些方面的内容是否可能?
答案 0 :(得分:10)
如何将此逻辑放入使用私有字段Books
备份的books
属性中:
public IEnumerable<Book> Books //or public IList<Book> Books
{
get
{
if(this.books == null)
throw new Exception("Books couldn't load because blah blah");
return this.books;
}
}
答案 1 :(得分:4)
在Books属性中,添加一个逻辑以检查是否已加载集合:
public List<Book> Books { get {
if (this.books == null) // or any other flag check
throw new InvalidOperationException("Books are not loaded.");
return this.books;
} }