私は次のコードを持っています:
Func<string, bool> comparer = delegate(string value) {
return value != "0";
};
ただし、次のものはコンパイルされません。
var comparer = delegate(string value) {
return value != "0";
};
コンパイラがなぜそれを理解できないのFunc<string, bool>
ですか?これは1つの文字列パラメータを取り、ブール値を返します。代わりに、それは私にエラーを与えます:
暗黙的に型指定されたローカル変数に匿名メソッドを割り当てることはできません。
私は1つの推測を持っています、そしてそれがvarバージョンがコンパイルされた場合、私が以下を持っているならばそれは一貫性に欠けるでしょう:
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) {
return false;
};
Func <>は最大4つの引数しか許可しないため、上記は意味を成しません(.NET 3.5では、これが私が使用しているものです)。おそらく誰かが問題を明確にすることができるでしょう。ありがとう。
Func<string, bool>
ですか?それはConverter<string, bool>
私には見えます!
Dim comparer = Function(value$) value <> "0"
Func<>
最大16個の引数を受け入れます。