Was ist null oder Standardvergleich des generischen Arguments in C#

Was ist null oder Standardvergleich des generischen Arguments in C#
Bei der Arbeit mit Generika in C#ist es wichtig zu verstehen, wie Null- oder Standardvergleich mit generischen Argumenten funktioniert. In C#repräsentiert NULL eine Referenz auf kein Objekt, während der Standardwert den Standardwert eines Datentyps darstellt.

NULL -Vergleich generischer Argument

Beim Vergleich generischer Argumente für NULL verwenden wir den == Operator, der überprüft, ob zwei Operanden gleich sind. Wenn Sie den Operator == Operator verwenden, um generische Argumente zu vergleichen, ist es wichtig sicherzustellen, dass der Argumentyp ein Referenztyp ist. Der == Operator wird verwendet, um Referenzen zu vergleichen. Hier ist ein Beispiel für einen Nullvergleich eines generischen Arguments in C#:

öffentliches statisches Bool isnull(T arg) wo t: Klasse

return arg == null;

Der obige Code verwendet den Operator ==, um zu prüfen, ob das Argument null ist oder nicht und das WO T: Klasse Die Einschränkung stellt sicher, dass der Argumentyp ein Referenztyp ist, sodass wir den Operator == Operator verwenden können, um Referenzen zu vergleichen.

Standardvergleich des generischen Arguments

Beim Vergleich generischer Argumente für die Standardeinstellung verwenden wir Gleichheitscomparler.Standard.Gleich Methode. Der Gleichheitscomparler.Standard Eigenschaft gibt den Standardgleichheitsvergleich für den vom generischen Argument angegebenen Typ zurück. Die Equals -Methode des Standard -Gleichstellungsvergleichs wird verwendet, um zwei Operanden für die Gleichheit zu vergleichen. Hier ist ein Beispiel für einen Standardvergleich eines generischen Arguments in C#:

öffentliches statisches Bool isdefault(T arg)

Return EqualityComparer.Standard.Gleich (arg, Standard);

Der obige Code verwendet die Gleichheitscomparler.Standard.Gleich () Funktion zur Überprüfung, ob das Argument dem Standardwert seines Datentyps entspricht. Das Standard -Schlüsselwort wird verwendet, um den Standardwert eines Datentyps darzustellen.

Beispiel: Verwenden von Null und Standard in C#

Hier ist ein vollständiges Code -Beispiel, das sowohl Null- als auch Standardvergleich des generischen Arguments in C#demonstriert:

mit System verwenden;
Verwenden von System.Sammlungen.Generisch;
öffentliches Klassenprogramm

Public static void Main()

String str = null;
int i = Standard;
Konsole.WriteLine ($ "isnull: isnull (str)"); // WAHR
Konsole.WriteLine ($ "isDefault: isDefault (i)"); // WAHR

öffentliches statisches Bool isnull(T arg) wo t: Klasse

return arg == null;

öffentliches statisches Bool isdefault(T arg)

Return EqualityComparer.Standard.Gleich (arg, Standard);

Der obige C# Code definiert eine Konsolenanwendung, die zwei generische Methoden enthält. Die erste Methode "Ist Null" nimmt ein generisches Argument auf "Arg" und gibt einen Booleschen Wert zurück, der angibt, ob "Arg" ist null oder nicht, mit einer Einschränkung, die "T" Muss ein Referenztyp sein.

Die zweite Methode, "IsDefault" nimmt ein generisches Argument auf "Arg" und gibt einen Booleschen Wert zurück, der angibt, ob "Arg" ist der Standardwert für seinen Typ, ohne Einschränkungen auf "T". Die Hauptfunktionen testen beide Methoden mit einer Null -Zeichenfolge bzw. einem Standard -Ganzzahlwert:

Abschluss

Bei der Arbeit mit Generika in C#ist es wichtig zu verstehen, wie Null- oder Standardvergleich mit generischen Argumenten funktioniert. Für den Nullvergleich verwenden wir den Operator ==, um Referenzen zu vergleichen, und für den Standardvergleich verwenden wir die Gleichheitscomparler.Standard.Gleich Methode zum Vergleichen von Werten. Sie können effizientere und effektivere Code schreiben, indem Sie verstehen, wie Null- oder Standardvergleiche für generische Argumente durchgeführt werden können.