【发布时间】:2021-01-10 03:52:24
【问题描述】:
我有以下enum:
public enum Event0Instance
{
ClaimSent,
RequestSent,
ClaimResponseAqcuired,
RequestResponseAqcuired,
RequestRefusalAcquired,
}
有了这个enum,我制作了字典 Dictionary<Event0Instance, string>,其中string 值是每个枚举值的文本描述:
public static Dictionary<Event0Instance, string> Event0Descriptions =
new Dictionary<Event0Instance, string>()
{
{Event0Instance.ClaimSent, "Подана претензия" },
{Event0Instance.RequestSent, "Подан запрос"},
{Event0Instance.ClaimResponseAqcuired, "Получен ответ на претензию"},
{Event0Instance.RequestResponseAqcuired, "Получен ответ на запрос"},
{Event0Instance.RequestRefusalAcquired, "Получен отказ на запрос"}
};
这里明显的问题是需要对每个条目重复 Event0Instance.。有 更多 enums,每个 比示例中的更大,如果我想为每个人创建一个 Dictionary,这是一个 巨大的代码重复.
在 VBA 语言中有一个 With / End Withconstruct 你可以这样使用:
With Person
.FirstName = "John"
.LastName = "Smith"
.Age = 23
End With
C#中是否有类似的东西?
【问题讨论】:
-
您有什么理由不使用
DisplayAttribute? -
现代 IDE 提供了大量功能,可以以多种不同方式复制/粘贴值;)
-
@AnupSharma 我认为这对我现在的技能来说太过分了,此外,我不完全确定是将每个枚举值与一个字符串还是整个类相关联。跨度>
-
实际上,输入 Enum 的所有名称是一种很好的做法,正如前面所说,IDE 可以帮助您一键重命名所有精度。但是对我来说,使用新的“case”语法而不是字典的方法,因为你将 100% 编写附加方法来使用你的字典。使用字典的唯一好主意是例如当您将数据作为 json 配置文件执行时,但不要忘记验证。