C# C:将枚举类型作为参数传递

C# C:将枚举类型作为参数传递,c#,enums,c#-2.0,C#,Enums,C# 2.0,我尝试使用以下代码将enum转换为通用列表 public static List<T> ToList<T>(Type t) where T : struct { return Enum.GetValues(typeof(T)).Cast<T>().ToList(); } 因此,我确定如何将枚举类型作为参数传递。要将类型传递给函数,应使用以下语法: EnumHelper.ToList(typeof(Fruit)); 要将类型传递给函数,应使用以下语

我尝试使用以下代码将enum转换为通用列表

public static List<T> ToList<T>(Type t) where T : struct
{
    return Enum.GetValues(typeof(T)).Cast<T>().ToList();
}
因此,我确定如何将枚举类型作为参数传递。

要将类型传递给函数,应使用以下语法:

 EnumHelper.ToList(typeof(Fruit));
要将类型传递给函数,应使用以下语法:

 EnumHelper.ToList(typeof(Fruit));
松开参数类型t

该类型已作为泛型参数传递,因此您不需要该方法的常规参数。

松开参数类型t

该类型已作为泛型参数传递,因此该方法不需要常规参数。

使用EnumHelper.ToListTypeOfruit;。但是,您可能会丢失参数,声明为EnumHelper.ToList并使用它EnumHelper.ToList。

使用EnumHelper.ToListTypeOfruit;。但是,您可能会丢失参数,声明为EnumHelper.ToList并使用它EnumHelper.ToList。

为什么不这样做:

public static List<T> ToList<T>()
{     
    return Enum.GetValues(typeof(T)).Cast<T>().ToList(); 
} 
为什么不这样做:

public static List<T> ToList<T>()
{     
    return Enum.GetValues(typeof(T)).Cast<T>().ToList(); 
} 

回答错误:这实际上会导致一个错误,即无法推断EnumHelper的类型参数。ToListI想说明如何将类型作为参数传递,我不应该使用他自己的方法,因为你是对的,泛型参数可能有问题。回答错误:这实际上会导致错误,无法推断EnumHelper的类型参数。ToListI想说明如何将类型作为参数传递,我不应该使用他自己的方法,因为,你是对的,泛型参数可能有问题。第一个选项错误:这实际上会导致错误EnumHelper.ToList第一个选项错误:这实际上会导致错误EnumHelper.ToListStackOverflowException无法推断类型参数。ToListStackOverflowException首先找到它,调用EnumHelper.ToListTypeStackOverflowException时需要引用TypeOfRuit而不是Fruit首先找到它,调用EnumHelper.ToListTypeStackOverflowException时需要引用TypeOfRuit而不是Fruit谢谢您的解决方案。我已经试过了。但我的问题仍然是如何将枚举类型作为参数传递。感谢您的解决方案。我已经试过了。但我的问题仍然是如何将枚举类型作为参数传递。
List<Fruit> allFruits = EnumHelper.ToList<Fruit>(typeof(Fruit));
public static List<T> ToList<T>()
{     
    return Enum.GetValues(typeof(T)).Cast<T>().ToList(); 
}