C# 如何將方法作為參數傳遞


如何實現將方法作為參數傳遞

示例是控制台程序,代碼如下:

    class Program
    {
        static void Main(string[] args)
        {
            FuncB(FuncA,x);
            Console.WriteLine("c:"+c.ToString());
            Console.ReadKey();
        }

        static int a = 2;
        static int b = 3;
        static int c = 0;
        static int x = 4;

        //聲明一個方法型,關鍵字就是delegate,有參數就帶上參數
        public delegate void FuncA_EventHandler(int aa);
        //用上面的方法類型聲明一個對象_funcA
        static FuncA_EventHandler _funcA;

        //需要作為參數傳遞的方法FuncA
        public static void FuncA(int x)
        {
            c = (a + b) * x;
        }
        //以FuncA為參數的方法FuncB,FuncA有參數,FuncB也加一個就行了
        public static void FuncB(FuncA_EventHandler funcA,int x)
        {
            _funcA = funcA;
            if (_funcA!=null)
            {
                _funcA(x);
            }
            //_funcA?.Invoke(2);//簡化寫法
        }
    }

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM