VB.net to C# Equivalent of “AddressOf”

后端 未结 4 523
囚心锁ツ
囚心锁ツ 2021-01-19 05:17

I am trying to implement this example

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

but the only problem I am facing is the Ad

相关标签:
4条回答
  • 2021-01-19 05:43

    You can just leave it out. Method groups are implicitly convertible to delegates in C#.

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

    Or even simpler(I think this requires C# 2):

    return ResultStr.Replace(InputTxt, ReplaceWords);
    

    But since ReplaceWords is so simple, I'd consider a lambda expression(Requires C# 3):

    return ResultStr.Replace(InputTxt, m => "<span class=highlight>" + m + "</span>");
    
    0 讨论(0)
  • 2021-01-19 05:43

    Based on the link you posted, I'm assuming that you want this:

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

    .. in C#?

    If so you don't need the AddressOf keyword at all. MatchEvaluator is a delegate type so you can simply pass over a method (ResultStr.Replace(InputTxt, ReplaceWords)). Alternatively, you could use an anonymous method for this to reduce the code, which makes sense as it's not being used elsewhere:

    return ResultStr.Replace(InputTxt, delegate(Match m) {
        return "<span class=highlight>" + m.ToString() + "</span>";
    });
    
    0 讨论(0)
  • 2021-01-19 05:51

    I think you need to translate this into:

    new EventHandler(theMethod)
    
    0 讨论(0)
  • 2021-01-19 05:52

    You should be able to use something like this:

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

    Basically, in c# you don't need the 'addressOf' operator. I like having it, since it makes it real clear whats up, but c# is just like that.

    0 讨论(0)
提交回复
热议问题