2017-11-10 2 views
0

でこのような何かをデリゲートテンプレートを定義しますNullable。は、私は、デリゲートのテンプレート(可変入力および出力データ型)を定義しようとしているのNullableデータ型

重大度コード説明プロジェクトファイルの行抑制状態 エラーCS1961無効な差異::「(?TOperand ?, TOperand)Delegates.AopB.Invoke」タイプパラメータ「TResult」がオンの不変有効である必要がありますこれは私が得たエラーです。 'TResult'は共変量です。計算機

+2

だから何が問題なのですか? – Servy

答えて

1
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が値であることが必要ですタイプ。

編集:質問が編集されたので、outout以外のパラメータでは機能しないため、ここではoutを指定することはできません。答えは:

public delegate TOut? AB<TIn, TOut>(TIn? a,TOut? b) where TIn:struct where TOut:struct; 
1

TOut残念ながらoutのマークを付けることはできません。以下は、あなたが得る仕事と最も近います

分散が唯一の参照型で発生することができますので、あなたが inoutを使用することはできません
関連する問題