我爱学习第一天(委托)

2022-10-17,,

---恢复内容开始---

1.delegate

一般用法

 delegate void writevalue(string vale);//申明一个委托,参数是string类型,无返回值
        static void main(string[] args)
        {
            writevalue write = new writevalue(writeline);//实例化委托
            write("喝水");//调用
            console.readkey();

        }

        public static void writeline(string value) {
            for (int i = 0; i < 5; i++)
            {
                console.writeline("第{0}次{1}", i, value);

            }
        }

 

匿名委托

 delegate void writevalue(string vale);
        static void main(string[] args)
        {
            writevalue write = delegate (string value) { console.write(value); };
            write("喝水");
            console.readkey();

        }

 

使用lambda表达式

如需要传入多个参数,需要用"()"将参数包括起来,用","隔开.

  delegate void writevalue(string vale,string value1);
        static void main(string[] args)
        {
            writevalue write = (value,value1) => { console.write(value);console.write(value1); };
            write("喝水","吃饭");
            console.readkey();

        }

 

多播委托

 delegate void writevalue(string value);
        static void main(string[] args)
        {
            writevalue value1 = new writevalue(write);
            value1 += new writevalue(writeline);
            value1("s");
            console.readkey();

        }

        public static  void writeline(string value) {
            console.writeline("帮我倒杯卡布奇洛,谢谢");
        }

        public static void write(object value) {

            console.writeline("多加点糖,谢谢");
        }

 

2.func<t,e>

t表示参数类型,e表示返回值类型. func<t1,t2,t3,e>表示有三个参数,类型分别为t1,t2,t3,返回值为e,以此类推.func<e>表示没有参数,返回值类型为e.

delegate void writevalue(string value);
        static void main(string[] args)
        {
            func<string, int> func = length;

            console.writeline(func("哈哈哈"));
            console.readkey();

        }
        public static int length(string value) {
            return value.length;
        }

 

3.action<t>

action<t1,t2,t3>表示有三个参数,无返回值,以此类推.

static void main(string[] args)
        {
            action<string, string> action = length;
            action("吃饭饭", "喝水水");
            console.readkey();

        }
        public static void length(string value,string value1) {
            console.writeline(value);
            console.writeline(value1);
        }

 

4.predicate<t>:表示定义一组条件并确定指定对象是否符合这些条件的方法。该委托返回的是一个bool类型的值,如果比较满足条件 .只能有一个参数.

 static void main(string[] args)
        {
            predicate<int> predicate = max;
            console.writeline(predicate(12).tostring());
            console.readkey();

        }
        public static bool max(int value) {
            return value > 0;
        }

 

 

 

---恢复内容结束---

《我爱学习第一天(委托).doc》

下载本文的Word格式文档,以方便收藏与打印。