4

この例を実装しようとしています

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

しかし、私が直面している唯一の問題は、C#.netで変換できないVB.netのAddressOfキーワードです。

誰かがこれで私を助けることができますか、それを機能させるために私がどの代替手段を使うべきか。

ありがとう。

編集:私は同様の問題に関してstackoverflowでいくつかの検索を見つけましたが、それらを理解することができません。

4

4 に答える 4

8

あなたはそれを省くことができます。メソッドグループは、C#でデリゲートに暗黙的に変換できます。

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

またはさらに簡単です(これにはC#2が必要だと思います):

return ResultStr.Replace(InputTxt, ReplaceWords);

しかし、ReplaceWordsはとても単純なので、ラムダ式を検討します(C#3が必要):

return ResultStr.Replace(InputTxt, m => "<span class=highlight>" + m + "</span>");
于 2011-10-11T11:47:26.100 に答える
2

あなたが投稿したリンクに基づいて、私はあなたがこれを望んでいると思います:

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>";
});
于 2011-10-11T11:51:16.390 に答える
1

これを次のように翻訳する必要があると思います。

new EventHandler(theMethod)
于 2011-10-11T11:49:02.673 に答える
1

次のようなものを使用できるはずです。

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

基本的に、C#では「addressOf」演算子は必要ありません。私はそれを持っているのが好きです、なぜならそれは何が起こっているのかを本当に明確にするからです、しかしc#はまさにそのようなものです。

于 2011-10-11T11:50:27.413 に答える