程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 委托,委托書

委托,委托書

編輯:C#入門知識

委托,委托書


delegate:和枚舉類似既可以定義在類裡面也可以在namespace下。

聲明:public delegate int Entrust(int x, int y);注:創建委托實例時傳入的參數為方法名

class MyMath { public int add(int x, int y) { return x + y; } public int sub(int x, int y) { return x - y; } } 准備

使用:Entrust e=new Entrust(MyMath.add);注:靜態方法可以這樣用,否則請先創建MyMath的對象

多播委托:e+=MyMath.sub;注:對於有返回值的方法最好不用多播委托

匿名委托: e += delegate(int x, int y) { return x * y; };

Lambda:e += (x, y) => x / y;注:明天構建

使用:Console.WriteLine(e(8,2));

系統預定義的常用泛型委托

Func委托:有多種重載,delegate TResult Func<T1,T2,T3,T4,TResult>——Func<string,int> f = delegate(string x) { return 1; };注:泛型的最後一個參數為返回值類型

Action委托:相對於Func委托無返回值

Predicate委托:判斷是否符合某標准,只能接受一個參數,參數類型在<>中指定,返回值為bool。Predicate<string> p = delegate(string x) { return true; };

Comparison委托:比較兩個元素,兩個參數類型需一致,參數類型在<>中指定,返回值為int,一般用於排序。Comparison<string> c = delegate(string x, string y) { return 1; };

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved