9

James Michael Hareは最近、静的メソッドに関するブログ投稿を書きました。Char彼は、メソッドグループを使用してあまり言葉のないLINQを作成することについて話します。

if (myString.Any(c => char.IsLower(c))) { xyzzy(); }
if (myString.Any(char.IsLower)) { xyzzy(); } // Less wordy FTW!

VB.NETでの同等のものは次のようになります。

If myString.Any(Function(c) Char.IsLower(c)) Then xyzzy()
If myString.Any(Char.IsLower) Then xyzzy() 'Compiler error

悲しいことに、ここではC#と同等のことはできません...コンパイラは私にOverload resolution failed because no accessible 'IsLower' accepts this number of arguments...悲しみを教えてくれます。それは私が持っていることが原因かもしれないと思いましたOption Strictが、残念ながら、それもうまくいきませんでした。

メソッドグループはVB.NETでは利用できないと思います...VB.NETで利用できる同様の機能はありますか?または、これがVB.NETで実行できない(実行できない)特別な理由はありますか?

4

1 に答える 1

12

同等の VB コードは次のようになります。

If myString.Any(AddressOf Char.IsLower) Then xyzzy()
于 2012-10-09T16:03:16.490 に答える