Rückgabewertverarbeitung von generischen C#-Methoden
Wenn in C# beim Definieren einer generischen Methode der Typparameter T ein Werttyp ist (z. B. int oder structure), führt die Rückgabe von null zu einem Kompilierungsfehler, da null keinem Werttyp zugewiesen werden kann.
Lösung
Es gibt mehrere Möglichkeiten, dieses Problem zu lösen:
default(T)
, um den Standardwert des Typparameters T zurückzugeben. Für Referenztypen wird Null zurückgegeben; für Ganzzahlen wird Null zurückgegeben und so weiter. where T : class
, um den Typparameter T auf einen Referenztyp zu beschränken. Auf diese Weise kann null ohne Fehler zurückgegeben werden. where T : struct
-Einschränkung verwenden und von einer Methode mit einer Rückgabe null zurückgeben Art von T?
. Dies stellt einen Nullwert eines Nicht-Null-Werttyps dar. Beispiel:
<code class="language-csharp">static T FindThing<T>(IList collection, int id) where T : IThing, new() { foreach (T thing in collection) { if (thing.Id == id) return thing; } return default(T); // 返回类型T的默认值 }</code>
Wählen Sie die Methode, die Ihren spezifischen Anforderungen am besten entspricht, und stellen Sie sicher, dass der Rückgabewert mit dem erwarteten Typ und der Nullfähigkeit von T übereinstimmt.
Das obige ist der detaillierte Inhalt vonWie kann ich Werte von generischen Methoden in C# sicher zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!