【发布时间】:2013-11-08 00:35:47
【问题描述】:
我有一个复杂的 c# 类,它有几个平面成员和几个嵌套的复杂类型。
一般来说,如果没有数据,我不会初始化“嵌套”复杂类型。
例如,如果我有一堂课
Public class Person
{
public string FirstName{get;set;}
public Address{get;set;}
}
我不会做Person p = new Person(){FirstName="Test", Address = new Address()};
但是,我被告知要初始化“所有子”复杂类型,尽管我认为这不应该是这种情况。为什么在我们没有数据时分配内存。您如何确定对象是否为空。您是比较所有值/定义某种滞后,还是定义一个专门的子类来表示空实例。
您的反馈将不胜感激。
【问题讨论】:
-
也许你可以使用 NullObjectpattern:en.wikipedia.org/wiki/Null_Object_pattern
-
见infoq.com/presentations/…和c2.com/cgi/wiki?PrematureOptimization,你的直觉不应该保留你不需要的空间可能属于过早优化的范畴,副作用是留下调用代码更可能引入空引用异常。
标签: c# object types initialization nested