gpt4 book ai didi

c# - 这是访问枚举的安全方法吗?

转载 作者:行者123 更新时间:2023-11-30 19:28:20 24 4
gpt4 key购买 nike

我的遗留代码是这样的:

if (chgList != ABCHeader.ChangeListTypes.Always)

这是 ABCHeader - 它是一个类(不是变量),并且是一个非静态类:

public class ABCHeader
{
. . .

public enum ChangeListTypes
{
...
}

chgList 是这样定义的:

private ABCHeader.ChangeListTypes chgList = ABCHeader.ChangeListTypes.Always;

这显然可以编译,但我觉得以这种方式引用这个非静态类 (ABCHeader) 似乎不对。由于我在这段代码中的某处遇到了一个奇怪的 Null Reference Exception,因此通过查看我偶然发现的代码。这是一个潜在的问题,还是我肯定找错了树?

最佳答案

这只是嵌套类型class(静态和非静态)或 struct 可以在其中包含另一种类型。句点 . 是“静态成员”访问。这很像调用静态方法的时期,比如 ABCHeader.SomeMethod();

这种期限永远不会像实例成员访问期限那样导致 NullReferenceException

请注意,.NET Framework 使用加号 + 而不是句点 . 来表示嵌套类型。例如:

string typeString = typeof(ABCHeader.ChangeListTypes).ToString();
// will contain a name including "ABCHeader+ChangeListTypes"

关于c# - 这是访问枚举的安全方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15912410/

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