0

私はこのようなことをするのが好きです:

public static List<string> ItemsOfEnum(T typeT)
{
    List<string> items = new List<string>();
    foreach (typeT tItem in Enum.GetValues(typeof(typeT)))
       items.Add(tItem);
    return items;
}

リターンタイプ(リスト)を変更せずにパラメータリストの「T」を取得するにはどうすればよいですか?

4

3 に答える 3

6

簡単そうに見えます...しかし、多分それはあなたが探していたものですか?

public static List<string> ItemsOfEnum<typeT>()
        where typeT: struct, IComparable, IFormattable, IConvertible {
    List<string> items = new List<string>();
    foreach (typeT tItem in Enum.GetValues(typeof(typeT)))
       items.Add(tItem.ToString());
    return items;
}

C#では列挙型への制約が許可されていないため、これらの制約は多かれ少なかれ取得できるクローズであることに注意してください。

于 2012-06-24T20:23:38.733 に答える
1

構文を混同したと思います。私はあなたがこのようなものが欲しいと思います:

public static List<string> ItemsOfEnum<T>(T inputList) {...}

for eachステートメントでは、typeTをTと交換する必要があります。内部リストの場合は、toString関数を呼び出して文字列を取得する必要があります。

于 2012-06-24T20:23:02.547 に答える
0
  public static List<string> itemsofenum<typet>()
  { ... }
于 2012-06-24T20:22:29.923 に答える