1. 程式人生 > 實用技巧 >c#中內建委託

c#中內建委託

一、Action泛型委託

和之前委託最大區別在於不用定義委託,直接例項化委託(申明就可以),泛型其實就是選擇資料型別,進行使得程式更加安全,並且也實現了委託的過載,最多選擇16個引數。

namespace 自定義委託
{
    class Program
    {
        Action<string> actHandler;

        public Program()
        {
            actHandler += Test1;
            actHandler += Test2;
        }

        public
void Test1(string str) { Console.WriteLine("I am Test1 "+str); } public void Test2(string str) { Console.WriteLine("I am Test2 "+str); } public void Display() { actHandler("nice"); } static
void Main(string[] args) { Program obj = new Program(); obj.Display(); } } }

委託還有一個好處是,當執行委託時,委託中的一個變數發生變化,會引起所有註冊方法的變化,就是我們所說額觀察者模式。

Func<T>表示註冊的方法有返回值,返回型別是<>最後一個引數是返回型別,而Action<T>表示註冊的無返回值,其實都類似。

Predicate<T>表示註冊的方法返回值為bool型別,並且只有一個返回值,是Func<T>的一個特例。