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/

10-13 03:25