private void checkTheCheckInterval(Func<in SqlConnection, in Random, in TextBox, out Boolean> myFunc) {
}
私はこのビルドエラーを取得:はどのように私は、この不正な分散修飾子エラーを修正するか?:
エラーCS1960:無効な分散修飾子。バリアントとして指定できるのは、インターフェースおよびデリゲート・タイプのパラメーターだけです。
すべてのカンマにエラーが表示されます。
private void checkTheCheckInterval(Func<in SqlConnection, in Random, in TextBox, out Boolean> myFunc) {
}
私はこのビルドエラーを取得:はどのように私は、この不正な分散修飾子エラーを修正するか?:
エラーCS1960:無効な分散修飾子。バリアントとして指定できるのは、インターフェースおよびデリゲート・タイプのパラメーターだけです。
すべてのカンマにエラーが表示されます。
これは無効なC#です。分散モディファイアは、汎用代理人タイプまたはインターフェイスを宣言した場合にのみ使用できます。ここではデリゲートタイプFunc<in T1, in T2, in T3, out TResult>
を使用します。
あなたがタイプを使用してSqlConnection
ようジェネリック引数を指定、分散はFunc<...>
によって宣言されているよう汎用パラメータT1
... T3
とTResult
用などRandom
、あなたは、分散修飾子をspecifiyすることはできません
private void checkTheCheckInterval(Func<SqlConnection, Random, TextBox, Boolean> myFunc)
{
}
これはタイプの宣言でありますは、(reference sourceから撮影):
ここpublic delegate TResult Func<in T1, in T2, in T3, out TResult>(T1 arg1, T2 arg2, T3 arg3);
分散が宣言され、あなたは、あなたがFunc<>
を使用するときにそれを変更する必要はありませんすることはできません。
SqlConnection
、
Random
と
TextBox
)を取り、
Boolean
値を返すラムダを渡したいようだ
:
private void checkTheCheckInterval(Func<SqlConnection, Random, TextBox, Boolean> myFunc) {
}
'ます。private void checkTheCheckInterval(機能 myFunc) '?パラメータではなく、C#*共分散*に関するすべての 'in'と' out'を削除するだけですか? –
@DmitryBychenkoありがとう!あなたの答えを掲示して、私はそれを選ぶでしょう。 – nicomp