簡體   English   中英

VB.net到C#等效的“AddressOf”

[英]VB.net to C# Equivalent of “AddressOf”

我正在嘗試實現這個例子

http://blog.evonet.com.au/post/Gridview-with-highlighted-search-results.aspx

但我遇到的唯一問題是VB.net的AddressOf關鍵字,我無法在C#.net中轉換

任何人都可以幫助我解決這個問題,我應該用什么替代方案讓它發揮作用。

謝謝。

編輯:我發現有關類似問題的stackoverflow上的一些搜索,但我無法理解它們。

你可以把它留下來。 方法組可以隱式轉換為C#中的委托。

return ResultStr.Replace(InputTxt, new MatchEvaluator(ReplaceWords))

甚至更簡單(我認為這需要C#2):

return ResultStr.Replace(InputTxt, ReplaceWords);

但由於ReplaceWords非常簡單,我會考慮一個lambda表達式(需要C#3):

return ResultStr.Replace(InputTxt, m => "<span class=highlight>" + m + "</span>");

根據您發布的鏈接,我假設您想要這個:

Return ResultStr.Replace(InputTxt, New MatchEvaluator(AddressOf ReplaceWords))

..在C#?

如果是這樣,您根本不需要AddressOf關鍵字。 MatchEvaluator是一個委托類型,因此您可以簡單地傳遞一個方法( ResultStr.Replace(InputTxt, ReplaceWords) )。 或者,您可以使用匿名方法來減少代碼,這是有意義的,因為它沒有在別處使用:

return ResultStr.Replace(InputTxt, delegate(Match m) {
    return "<span class=highlight>" + m.ToString() + "</span>";
});

我想你需要把它翻譯成:

new EventHandler(theMethod)

你應該可以使用這樣的東西:

return ResultStr.Replace(InputTxt, new MatchEvaluator(ReplaceWords))

基本上,在c#中,您不需要'addressOf'運算符。 我喜歡它,因為它真的很清楚,但是c#就是這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM