C#内置委托

三种内置委托:

Action:无返回值.

Func:尖括号最后一个类型为返回值类型.必须要有返回值.

Predicate: 返回类型为bool,必须有一个参数,等价于Func;

注意,有返回值的委托中,如果有多个方法注册在内,返回值是最后注册的方法返回值,前面的同样会执行,只不过返回值拿不到:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text.RegularExpressions; //引用命名空间

namespace ConsoleApplication2
{
    class Program
    {
        
        class TestCls
        {
            public TestCls ()
            {
                preHandler += TestPre;
                preHandler += TestPre2;
            }

            Func preHandler;

            private string TestPre(string str)
            {
                Console.WriteLine("Return 2");
                return "2";
            }

            private string TestPre2(string str)
            {
                Console.WriteLine("Return 3");
                return "3";
            }

            public void DisplayInfo ()
            {
                Console.WriteLine(preHandler ("233"));
            }
        }

        static void Main(string[] args)
        {
            TestCls tc = new TestCls();
            tc.DisplayInfo();
        }
    }
}

打印结果:

C#内置委托_第1张图片

 

你可能感兴趣的:(C#)