Mögliche Duplizieren:
Nullable type as a generic parameter possible?Warum Nullable <T> nicht als Referenztyp für generische Einschränkungen entsprechen
ich auf eine sehr seltsame Sache mit generischen Typ Einschränkungen kam. Ich habe eine Klasse wie folgt:
public SomeClass<T> where T:class
{
}
aber ich gefunden habe ich nicht auf NULL festlegbaren Typen verwenden kann, wie ich erwarten würde:
new SomeClass<int?>();
ich einen Fehler, dass int?
eine Referenz sein muss Art. Ist Nullable wirklich nur eine Struktur mit syntaktischem Zucker, damit es wie ein Referenztyp aussieht?
Was ist der Grund für diese Einschränkung? Können Sie mehr Kontext bereitstellen? FYI Nullable wird wie folgt deklariert: 'public struct Nullable wo T: struct ' –
@SimonWhitehead im Grunde, weil die Verwendung von Werttypen in dieser Klasse kann unerwartetes Verhalten haben und große Auswirkungen Auswirkungen – Earlz
Dann denke ich die gerade Antwort ist" Ja, Nullable ist ein Struktur ". Ich bin mir nicht ganz sicher, was Sie für Nullable als syntaktischen Zucker halten. Es scheint, dass Ihre einzige Möglichkeit ist, Ihre eigenen zu rollen. –