0

私は以下のように列挙しています

private enum gettype
{
    Xml/adf = 1,
    xml/adf and html = 2
};

しかし、私の知る限り、間に特殊文字のスペースを宣言することはできませんでした。「表示」と「説明」も試しましたが、うまくいきませんでした。誰もが回避策を知っていますか。

4

2 に答える 2

2

それはいけません。列挙型メンバーは、有効な C# 識別子である必要があります。ただし、さまざまな属性でそれらを装飾できます。

using System.ComponentModel;

private enum gettype
{
    [Description("Xml/adf")]
    XmlAdf = 1,

    [Description("Xml/adf and html")]
    XmlAdfAndHtml = 2
}

ここで、列挙値を説明文字列に変換する、またはその逆に変換するには、何らかの方法でリフレクションを使用する必要があります。例えば:

var enumValue = gettype.XmlAdfAndHtml;
var attr = (DescriptionAttribute[])
        typeof(gettype).GetField(enumValue.ToString())
                       .GetCustomAttributes(typeof(DescriptionAttribute), true);
var stringValue = attr[0].Description; // Xml/adf and html
于 2013-07-31T04:29:18.300 に答える
0

以下のスタック オーバーフロー リンクを参考にしてください。

スペースまたは特殊文字を含む文字列を列挙型に追加することは可能ですか?

C#列挙型で特別な文字を使用するにはどうすればよいですか?

于 2013-07-31T04:34:05.430 に答える