簡體   English   中英

如何解決此無效方差修飾符錯誤?:

[英]How do I fix this Invalid variance modifier error?:

private void checkTheCheckInterval(Func<in SqlConnection, in Random, in TextBox, out Boolean> myFunc) {

}

我收到此構建錯誤:

錯誤CS1960:方差修飾符無效。 只能將接口和委托類型參數指定為變量。

該錯誤出現在所有逗號上。

這是無效的C#。 僅當您聲明通用委托類型或接口時才能使用方差修飾符。 在這里,您使用委托類型Func<in T1, in T2, in T3, out TResult>

當您使用類型並為通用參數 T1 ... T3TResult指定通用參數(SqlConnectionRandom等)時,您無法指定方差修飾符,因為方差由Func<...>聲明Func<...>

private void checkTheCheckInterval(Func<SqlConnection, Random, TextBox, Boolean> myFunc)
{
}

這是Func<...>類型的聲明(取自參考源 ):

public delegate TResult Func<in T1, in T2, in T3, out TResult>(T1 arg1, T2 arg2, T3 arg3);

在此聲明了方差,使用Func<>時,您不能也不需要更改它。

似乎您想傳遞一個帶3個參數( SqlConnectionRandomTextBox )並返回Boolean值的lambda:

private void checkTheCheckInterval(Func<SqlConnection, Random, TextBox, Boolean> myFunc) {

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM