gpt4 book ai didi

c# - 处理不应为 null 的 C# 属性

转载 作者:太空狗 更新时间:2023-10-29 20:15:34 25 4
gpt4 key购买 nike

在为我正在处理的项目设置一些引用类型属性时,我遇到了一些需要正确初始化才能使用并且永远不应该为 null 的属性。我已经看到了几种处理此问题的方法,但无法真正确定我所看到的处理此问题的任何主要方法是否存在任何重大缺点。我想了解社区对处理此问题的最佳方式的意见,以及每种方法可能存在的潜在缺点。

给定一个简单的类,我看到了几种方法来确保属性在属性中永远不会有此类的 null 版本

public class MyClass
{
//Some collection of code
}

选项 1 - 初始化后备存储

public class OtherClass1
{
private MyClass _mC = new MyClass();
public MyClass MC
{
get { return _mC; }
set { _mC = value; }
}
}

选项 2 - 在构造函数中初始化属性

public class OtherClass2
{
public MyClass MC { get; set; }

public OtherClass2()
{
MC = new MyClass();
}
}

选项 3 - 根据需要在 Getter 中处理初始化

public class OtherClass3
{
private MyClass _mC;
public MyClass MC
{
get
{
if (_mC == null)
_mC = new MyClass();
return _mC;
}
set { _mC = value; }
}
}

我敢肯定还有其他方法,但这些是我想到的并且我已经看到的方法。我主要是想确定在这方面是否有完善的最佳实践,或者是否存在与上述任何问题相关的具体问题。

干杯,

史蒂夫

最佳答案

最好的选择,除非你真的可以自己创建一个新实例:只提供采用所有必需值的构造函数,并在此时验证它们。

关于c# - 处理不应为 null 的 C# 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619448/

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