參考例子,學(xué)習(xí)Func<T, TResult>委托
標簽:
JavaScript
这些天,开发ASP.NET MVC,其间有查找资料,发现一个全新的Func<T, TResult> 委托。让我们在开发时,节省与简化很多。
在开发过程中,我们需要把一个泛型List<int>,把所有整型int串连起来转换为一串字符串。
这时,我们会写一个方法:
source code:
public string ConnectToString(List<int> listInt) { StringBuilder _sb = new StringBuilder(); listInt.ForEach(delegate (int i) { _sb.Append(i.ToString()); }); return _sb.ToString(); }
View Code
在视图中,我们就可以应用这个方法:
呵呵,这是最普通的方法。
如果改用委托呢?怎样写? 那我们可以使用委托的关键词delegate来宣告一个方法,方法的参数就是List<int> :
public delegate string DelegateConnectToString(List<int> listInt);
在视图中,我们使用这个委托:
上面的方法,我们是按常规的写法,去new一个委托,下面我们大不必去new一个委托,直接使用一个匿名方法来替代:
source code:
public DelegateConnectToString ConnectToString1 = delegate (List<int> listInt) { StringBuilder _sb = new StringBuilder(); listInt.ForEach(delegate (int i) { _sb.Append(i.ToString()); }); return _sb.ToString(); };
View Code
在视图中,我们可以这样使用方法:
在较高版本的.NET Framework的,已经有一个Func<T, TResult>委托了,使用它不必你去宣告一个自定义的委托,如上的DelegateConnectToString(List<int> listInt)。
因此在写代码时,可以这样写法:
source code:
public Func<List<int>, string> ConnectToString2 = delegate (List<int> listInt) { StringBuilder _sb = new StringBuilder(); listInt.ForEach(delegate (int i) { _sb.Append(i.ToString()); }); return _sb.ToString(); };
View Code
在视图中应用此方法:
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦