class Program
{
static void Main(string[] args)
{
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
Type TEnum = types.Where(d => d.Name == "TEnum").FirstOrDefault();
var values = TEnum.GetEnumValues();
var error = new object();
foreach (var value in values)
{
if (value.ToString() == "Test2")
{
error = value;
}
}
TestMethod("A",ref error);
}
public static void TestMethod(string a, ref TEnum b)
{
}
public enum TEnum
{
Test,
Test2
}
}
在上面的代码中,我试图传递从复制中获得的枚举。这只是一个示例代码,实际上TestMethod(string a,ref TEnum b)和枚举TEnum在不同的程序集中,我正在通过反射加载。在此示例中,我如何将枚举作为参数传递给方法。目前,我为此收到编译错误。
提前致谢
最佳答案
您可以使用反射从其类型中获取方法并调用它。
var args = new[] { "A", error };
parentType.GetMethod("TestMethod").Invoke(null, "A",args);
error = args[1];
关于c# - 如何通过反射将枚举值传递给方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30206405/