gpt4 book ai didi

c# - 为什么实例化一个对象不自动实例化它的属性?

转载 作者:太空狗 更新时间:2023-10-29 23:58:46 24 4
gpt4 key购买 nike

我有以下类(class):

public class CustomerResult
{
public string CompanyStatus { get; set; }
public OverallResult Result { get; set; }
}

public class OverallResult
{
public string StatusDescription { get; set; }
public int StatusCode { get; set; }
public string CustomerId { get; set; }
}

我实例化:

var apiResult = new CustomerResult();

为什么以下返回空引用?当我创建 CustomerResult() 时,肯定会实例化 OverallResult 吗?

apiResult.Result.CustomerId = "12345";

最佳答案

因为您没有为 Result 创建一个实例。默认情况下,引用类型具有空值,OverallResult 是一个类,因此是一个引用类型。

你可以在构造函数中完成。

public class CustomerResult
{
public string CompanyStatus { get; set; }
public OverallResult Result { get; set; }
public CustomerResult(){
Result = new OverallResult();
}
}

如果您的 C# 版本高于 6.0,则有更简单的方法 Auto-Property Initializers

C# 6 enables you to assign an initial value for the storage used by an auto-property in the auto-property declaration:

public class CustomerResult
{
public string CompanyStatus { get; set; }
public OverallResult Result { get; set; } = new OverallResult();
}

关于c# - 为什么实例化一个对象不自动实例化它的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52119108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com