でこのような何かをデリゲートテンプレートを定義しますNullable。は、私は、デリゲートのテンプレート(可変入力および出力データ型)を定義しようとしているのNullableデータ型
重大度コード説明プロジェクトファイルの行抑制状態 エラーCS1961無効な差異::「(?TOperand ?, TOperand)Delegates.AopB.Invoke」タイプパラメータ「TResult」がオンの不変有効である必要がありますこれは私が得たエラーです。 'TResult'は共変量です。計算機
でこのような何かをデリゲートテンプレートを定義しますNullable。は、私は、デリゲートのテンプレート(可変入力および出力データ型)を定義しようとしているのNullableデータ型
重大度コード説明プロジェクトファイルの行抑制状態 エラーCS1961無効な差異::「(?TOperand ?, TOperand)Delegates.AopB.Invoke」タイプパラメータ「TResult」がオンの不変有効である必要がありますこれは私が得たエラーです。 'TResult'は共変量です。計算機
public delegate TResult? AB<TOperand, TResult>(TOperand? a,TOperand? b) where TOperand:struct where TResult:struct;
注
public delegate TOut? AB<TIn, TOut>(TIn? a,TOut? b) where TIn:struct where TOut:struct;
、および
Nullable<T>
は
T
が値であることが必要ですタイプ。
編集:質問が編集されたので、out
はout
以外のパラメータでは機能しないため、ここではout
を指定することはできません。答えは:
public delegate TOut? AB<TIn, TOut>(TIn? a,TOut? b) where TIn:struct where TOut:struct;
TOut
残念ながらout
のマークを付けることはできません。以下は、あなたが得る仕事と最も近います
:
分散が唯一の参照型で発生することができますので、あなたがin
や
out
を使用することはできません
だから何が問題なのですか? – Servy