[英]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.