繁体   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