为什么我在 Enum->String 转换时收到“可能为空引用”警告?

问题描述 投票:0回答:1

我有一个类型为

ArmorType
的私有字段。这是一个
enum
。然后,我创建一个公共属性,将
enum
值返回为
string
。但随后 Visual Studio 2022 告诉我有一个
Possible Null Reference Return
,我完全困惑这怎么可能,因为枚举值不能为 null,因此返回的字符串也永远不会为 null。

有什么解释吗? Visual Studio 只是愚蠢吗?我是否遗漏了有关 C# 功能的一些基本知识?

c# enums
1个回答
0
投票

您正在使用项目设置“启用可为空的引用类型”。您已声明一个不可为 null 的属性

ArmorType

现在,您尝试使用

Enum.GetName()
声明为

public static string? GetName (Type enumType, object value);

如您所见,它返回可为空的

string
。并且您尝试通过不可为 null 的属性返回它
string
。因此,您会收到此编译器错误。

© www.soinside.com 2019 - 2024. All rights reserved.