2012-05-09 7 views
7

私はこのコードにつまずいてきました:String.Containsは、C#でパラメータを必要としないのですか?

var knownSeparators = new[] { "\\", "/", "|", "." }; 
return knownSeparators.FirstOrDefault(path.Contains); 

パスは文字列であり、戻り値は、同様に文字列でなければならないところ。

Allthough path.Contains'インテリセンスが、それはなしで正常に動作し、パラメータを示唆しています。

これはどのように正確に機能しますか? vb.netでこの動作をコピーする方法はありますか?

答えて

7

FirstOrDefaultはデリゲート(Func<T, bool>)を受け取り、メソッドグループからデリゲートを作成しています。それはと同等です:

Func<string, bool> predicate = path.Contains; 
return knownSeparators.FirstOrDefault(predicate); 

私はあなたが行うことができますVB.NETで疑う:

Return knownSeparators.FirstOrDefault(AddressOf path.Contains) 

...しかし、私はそれをしようとせず、確実に伝えることができませんでした。

+0

悲しいことに、それはまだ(のAddressOfを追加した後)、それはパラメータを必要と言って – Terry

+0

@djerryを同じエラーを与える:私は括弧を削除するために編集した - ことができますかどうかを確認します。 –

+0

は確かに、それを処分したこと、感謝を教育されました。 – Terry

関連する問題