c# - 如何从字符串列表类型的服务字段分配响应的字符串类型列表
问题描述
我只是好奇我是否需要先创建一个 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
};
}
解决方案
如果您打算使用该实例,则只需创建一个实例。例如:
Response response = new Response();
response.Types.Add(someObject);
在上面的代码中,如果构造Response
对象没有初始化Types
字段,NullReferenceException
则会抛出 a。但是,在您拥有的代码中,您不使用该字段,而是分配给该字段:
Response response = new Response
{
Message = serviceResponse.Message,
Types = serviceResponse.Types
};
如果您Types
在创建对象时初始化该字段,该实例几乎会立即被丢弃并替换为您分配给它的实例。
所以,不,在您提供的示例中,技术上不需要初始化属性。 但是,请记住,通过不初始化属性,类假设使用代码将初始化它。在这一示例中,该假设得到了支持。但是未来的例子呢?将来会一直维持这个假设吗?你能保证吗?
一般来说,初始化集合属性是个好主意。这不是必需的,不这样做确实会带来非常小的性能改进,因为您不是为了立即将其丢弃并替换它而实例化一个对象。但风险在于您的消费代码必须始终记住执行此初始化。
推荐阅读
- c++ - 如何使用 Cmake ExternalProject_Add 从 github 添加库
- r - 使用 Rstudio 模拟键盘按下
- java - Spring Boot - 使用 ddl-auto=update 进行数据初始化
- macos - 如何在 azure 中访问我的项目文件
- java - 在另一个 Observable 中订阅一个 observable
- html - 如何检测Angular中元素外部的点击?
- python - Python,位置初始化(使用列表)完整解释
- heron - 无法使用 SchedulerStateManagerAdaptor 更新 Heron 拓扑
- angular - Angular 5 路由器链接为 NaN
- android - openfire没有从android genymotion模拟器连接