gpt4 book ai didi

c#-4.0 - 如何获取枚举变量的值?

转载 作者:行者123 更新时间:2023-12-04 05:45:40 26 4
gpt4 key购买 nike

我的问题是如何获取枚举变量的值?

enter image description here
请查看附加的屏幕截图...“hatas”是一个标志枚举。我想
获取“HasError”-“NameOrDisplayNameTooShort”错误以显​​示它们。

using System;

namespace CampaignManager.Enums
{
[Flags]
public enum CampaignCreaterUpdaterErrorMessage
{
NoError = 0,
HasError = 1,
NameOrDisplaynameTooShort = 2,
InvalidFirstName = 3,
}
}

我简单地尝试过;
Messagebox.Show(hatas);  // it's showing InvalidFirstName somehow...

非常感谢您的帮助...

最佳答案

第一件事:如果你想使用 FlagsAttribute在您的枚举上,您需要像这样定义 2 的幂的值:

[Flags]
public enum CampaignCreaterUpdaterErrorMessage
{
NoError = 0,
HasError = 1,
NameOrDisplaynameTooShort = 2,
InvalidFirstName = 4,
}

要获取标记的枚举的一部分,请尝试以下操作:
    var hatas = CampaignCreaterUpdaterErrorMessage.HasError | CampaignCreaterUpdaterErrorMessage.NameOrDisplaynameTooShort;
var x = (int)hatas;

for (int i=0; i<Enum.GetNames(typeof(CampaignCreaterUpdaterErrorMessage)).Length; i++)
{
int z = 1 << i; // create bit mask

if ((x & z) == z) // test mask against flags enum
{
Console.WriteLine(((CampaignCreaterUpdaterErrorMessage)z).ToString());
}
}

为了获得潜在值(value),请尝试类型转换:
Messagebox.Show(((int)hatas)ToString());

在您的示例中,默认情况下会针对 CampaignCreaterUpdaterErrorMessage 枚举调用 ToString,该枚举返回枚举的字符串表示形式。

通过强制转换为 int(枚举的基础默认类型),您可以在整数值上获得 ToString。

关于c#-4.0 - 如何获取枚举变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10720677/

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