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;
}

如何在不更改返回类型(List)的情况下获取参数列表中的“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) {...}

在您的每个语句中,您需要将 typeT 与 T 交换。也许对于您的内部列表,您需要调用 toString 函数来获取字符串。

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