c# - 属性是否需要显式初始化?

标签 c# .net c#-6.0

<分区>

是否需要像这样显式初始化属性:

public DeviceSettings ds{ get; private set; } = new DeviceSettings();

或者保持这种方式是否可以?

public class MyDevice
{
    public MyDevice(string serial, int patientid)
    {

    }

    public DeviceSettings ds{ get; private set; } //no initialization needed?
}

最佳答案

在您的第一个示例中,ds 设置为 DeviceSettings 的新实例,在您的第二个示例中,ds 设置为 default (DeviceSettings) 如果该类型是一个类,则为 null

如果您希望以第二种方式进行并且您的类型是一个类,您需要在构造函数中添加赋值

public class MyDevice
{
    public MyDevice(string serial, int patientid)
    {
        ds = new DeviceSettings();
    }

    public DeviceSettings ds{ get; private set; }
}

关于c# - 属性是否需要显式初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35583331/

相关文章:

c# - 必须声明标量变量 “@Login” 。尝试向 SqlDataSource 添加参数时出错

.net - NHibernate的轻量级替代品

c# - 寻找一个简单的.net 动画库

C# - iTextSharp 该文档没有页面

c# - 在附加到新的父 Visual 之前,必须断开指定子项与当前父 Visual 的连接

c# - C# 6 结构中的无参数构造函数

c# - 注册 ETW 提供商时遇到问题

c# - 如何在 C# 中摆脱 Cannot await 'void'

c# - 从 SQL Server 并行读取

c# - 访问 System.Collections.Generic.List 上的属性