C# 委托 delegate

delegate <T>  委托名<T>(T x, T y ...)

一、自定义

1、无参

using System;

namespace ClassAndIn
{
    internal class Program
    {

        static void Main(string[] args) {

            Dele dele = new Dele(M);
            dele += M;
            dele();
        }

        static void M() {
            Console.WriteLine("Hello, World");
        }
    }

    delegate void Dele();
}

2、含参

using System;


namespace ClassAndIn
{
    internal class Program
    {

        static void Main(string[] args) {

            Dele dele = new Dele(Add);
            int result = dele(10, 20);
            Console.WriteLine(result);
        }

        static int Add(int x, int y) {
            return x + y;
        }
      
    }

    delegate int Dele(int a, int b);
}

三、接口委托

using System;


namespace ClassAndIn
{
    internal class Program
    {

        static void Main(string[] args) {

            Dele<int> dele1 = new Dele<int>(Add);
            int result = dele1(10, 40);
            Console.WriteLine(result);

            Dele<double> dele2 = new Dele<double>(Mul);
            double retslt1 = dele2(20, 30);
            Console.WriteLine(retslt1);
        }

        static int Add(int x, int y) {
            return x + y;
        }

        static double Mul(double x, double y) { 
            return (x * y);
        }
      
    }

    delegate T Dele<T> (T a, T b);
}

 

posted @ 2025-06-14 14:34  市丸银  阅读(4)  评论(0)    收藏  举报