可能性の重複:
Nullable type as a generic parameter possible?なぜNULL可能<T>は、一般的な制約のために参照型と一致していません
私は、ジェネリック型の制約で非常に奇妙なことに出くわしました。私はint?
は参照でなければならないというエラーが出る
new SomeClass<int?>();
:
public SomeClass<T> where T:class
{
}
は、しかし、私が期待するように私がNULL可能なタイプを使用することはできません、私を見つけた:私はこのようなクラスを持っていますタイプ。 Nullableは、参照型のように見えるように構文上の砂糖を持つ構造体にすぎませんか?
この制約の理由は何ですか?より多くの文脈を提供できますか? FYI Nullableは次のように宣言されています: 'public struct Nullable where T:struct' –
@SimonWhitehead基本的に、このクラスの値型を使用すると予期しない動作と大きなパフォーマンスの影響を受ける可能性があります – Earlz
次に正直答えは"はい、Nullableは構造体 "である。私はあなたがNullableの構文的な砂糖であると考えているものはあまりよく分かりません。あなたの唯一の選択肢は、自分のロールを出すことです。 –