比如delegate int MyDelegate(string name);
怎样获取其返回类型int、输入类型string及其参数名称name?

解决方案 »

  1.   

    什么叫获取?
    你好像没明白委托
    委托只是一种类型  是需要NEW的
      

  2.   

    assembly.GetType委托也是一种类型  namespace AA
    {
    public  class BB
    {
      
    }
    public delegate void MyDelegate(string name);
    }Type t = assembly.GetType("AA.BB"); //获取类型BB委托类似
    Type t = assembly.GetType("AA.MyDelegate");
      

  3.   


    前面加上:
    Assembly assembly = Assembly.LoadFrom(...); 
      

  4.   


    我的意思是,比如我定义了一个类MyClass,那么我可以用typeof(MyClass).GetMembers()获取其所有成员信息(方法名、返回值、参数等)。既然委托也是一种类型,是不是也可以得到类似的信息?
      

  5.   


    获取到t然后呢?我知道委托都继承自Delegate,里面有一个类型为MethodInfo的Method属性。怎样不构造实例获取到这个MethodInfo?
      

  6.   

    获取到t然后呢?我知道委托都继承自Delegate,里面有一个类型为MethodInfo的Method属性。怎样不构造实例获取到这个MethodInfo?跟获取其他类型中的方法一样啊  Type.GetProperties();
      

  7.   

    GetProperties只是得到属性的信息,要得到真实的MethodInfo的话如果用GetValue就得构造其实例。能不能不创建实例就能获取的?
      

  8.   

    UP。我的需求是,一个类中有若干个事件,我要根据这些事件写一个代码生成器。比如
    事件 public event MyDelegate MyEvent;
    我要生成 public int OnMyEvent(string name)
    有其他办法吗?
      

  9.   

    Type不是有个GetEvents()方法么~~
      

  10.   

    委托也是一种类型了,具体实现可以参考我的博客:http://blog.csdn.net/lizhi3186575/article/details/8986877
      

  11.   

    好像都没答到关键点上,还是老外给力。http://stackoverflow.com/questions/429552/can-i-get-the-signature-of-a-c-sharp-delegate-by-its-type