我有一个类型为
ArmorType
的私有字段。这是一个enum
。然后,我创建一个公共属性,将 enum
值返回为 string
。但随后 Visual Studio 2022 告诉我有一个 Possible Null Reference Return
,我完全困惑这怎么可能,因为枚举值不能为 null,因此返回的字符串也永远不会为 null。
有什么解释吗? Visual Studio 只是愚蠢吗?我是否遗漏了有关 C# 功能的一些基本知识?
您正在使用项目设置“启用可为空的引用类型”。您已声明一个不可为 null 的属性
ArmorType
。
现在,您尝试使用
Enum.GetName()
声明为
public static string? GetName (Type enumType, object value);
如您所见,它返回可为空的
string
。并且您尝试通过不可为 null 的属性返回它string
。因此,您会收到此编译器错误。