我只是好奇是否需要首先创建Type对象?类型为List<string>
public List<string> Types { get ; set ;}
我很好奇我是否必须先做Types = new List<string>();
然后分配给它?在下面的代码中。
Response response = null;
if (serviceResponse!= null)
{
response = new Response
{
Message = serviceResponse.Message,
Types = serviceResponse.Types
};
}
答案 0 :(得分:2)
仅当计划使用该实例时才需要创建该实例。例如:
Response response = new Response();
response.Types.Add(someObject);
在上面的代码中,如果构造Response
对象没有初始化Types
字段,则将引发NullReferenceException
。但是,在您拥有的代码中,您没有使用该字段,而是分配该字段:
Response response = new Response
{
Message = serviceResponse.Message,
Types = serviceResponse.Types
};
如果在对象创建过程中初始化Types
字段,则该实例将几乎立即被丢弃并替换为您为其分配的实例。
因此,不,从技术上讲,您提供的示例不需要初始化属性。 但是,请记住,通过不初始化属性,该类将假定使用代码将对其进行初始化。在这个例子中,假设是成立的。但是未来的例子呢?将来会始终坚持这种假设吗?你能保证吗?
通常,初始化集合属性是一个好主意。它不是必需,并且不这样做确实会带来非常小的性能改进,因为您没有实例化一个对象只是为了立即将其丢弃并替换它。但是存在的风险是,您使用的代码必须始终记住要执行此初始化。