首頁>Club>
6
回覆列表
  • 1 # 水母星人

    自己測試了一下,使用反射機制,可以呼叫類裡面的靜態方法,但是沒有找到好的辦法呼叫泛型靜態方法,自己測試的程式碼如下:

    class Person

    {

    public static string Fun(string value)

    {

    Console.WriteLine("ttt");

    return value;

    }

    }

    class Program

    {

    static void Main(string[] args)

    {

    //使用反射機制得到指定類裡面的方法

    Type t = typeof(Person);

    MethodInfo info = t.GetMethod("Fun");

    Console.WriteLine(info.Name);

    Person p = new Person();

    //使用Invoke方法進行回撥

    object obj= info.Invoke(null,new string[] {"zhangsan"});

    //列印的結果是"zhangsan",即呼叫方法的返回值

    Console.WriteLine(obj);

    Console.ReadLine();

    }

    }

    到網上查了一下,也查不到相關的內容,希望上面的程式碼能幫到你.

  • 2 # pfsiu2647

    invoke這個方法就是呼叫委託,MSDN上的解譯是:Control.Invoke 方法在擁有此控制元件的基礎視窗控制代碼的執行緒上執行委託。 過載列表--------------------------------------------------------------------------------名稱 說明 Control.Invoke (Delegate) 在擁有此控制元件的基礎視窗控制代碼的執行緒上執行指定的委託。 由 .NET Compact Framework 支援。 Control.Invoke (Delegate, Object[]) 在擁有控制元件的基礎視窗控制代碼的執行緒上,用指定的引數列表執行指定委託。 由 .NET Compact Framework 支援。 具體參考請看:http://msdn.microsoft.com/zh-cn/library/30s4t80c(v=VS.80).aspx我的理解就是,用invoke呼叫用的委託方法,是被Controller控制的,如果Controller有錯誤,invoke就會報錯,然後終止呼叫的委託,就和一個程序和線的關係差不多

  • 中秋節和大豐收的關聯?
  • 佳能、尼康、索尼三家的16-35mm F4廣角鏡頭哪個好?