2016-07-01 6 views
1

Ich lerne C# im Moment, und ich habe noch nie zuvor gesehen.C# "?" in Methodendeklaration

static int? Foo() 
{ 
    return Bar 
} 

Was bedeutet das "?" machen?

Ich habe versucht, es auf Google und SE zu suchen, aber ich weiß nicht wirklich, welche Schlüsselbegriffe ich suchen sollte.

+4

Es ist ein NULL-fähiger Typ. Siehe https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx – failedprogramming

+0

https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx Weisen Sie einem nullfähigen Typ nur einen Wert zu Sie würden für einen gewöhnlichen Werttyp, zum Beispiel int? x = 10; oder doppelt? d = 4.108. Ein NULL-fähiger Typ kann auch den Wert null: int? x = null – Elshan

Antwort

7

Die int? ist eine Nullable Int. Wenn Sie dies als Rückgabetyp Ihrer Methode verwenden, bedeutet dies, dass diese Funktion entweder ein int oder null zurückgibt. Entsprechend MSDN

Nullable-Typen sind Instanzen der System.Nullable-Struktur. Ein Nullable-Typ kann den korrekten Wertebereich für seinen zugrunde liegenden Werttyp sowie einen zusätzlichen Nullwert darstellen. Beispielsweise kann eine Nullable, ausgesprochen "Nullable of Int32", einen beliebigen -Wert von -2147483648 bis 2147483647 zugewiesen werden, oder es kann der nullwertige -Wert zugewiesen werden.

+0

Gibt es eine gute Anwendung für Nullable-Typen? – danielr

+0

@danielr pls überprüfen Sie diesen Link, https://msdn.microsoft.com/en-us/library/2cf62fcy.aspx. Es beantwortet deine Frage. Wenn die Antwort nicht klar ist, lass es mich wissen. – Christos

+0

@Downvoter, ich würde mich freuen, wenn Sie darauf hinweisen könnten, wo die Antwort falsch ist. Vielen Dank im Voraus. – Christos

3

int? = der Wert Ganzzahl oder null sein

-1

Dies ist eine syntaktische Verknüpfung eine NULL festlegbaren Typ zu definieren, die in der Regel Nullable<T>

0

int? ein Typ der Typ definiert ist Verwendung und ist äquivalent zu Nullable<int>. Dieser Typ kann eine Ganzzahl oder Null speichern.

Verwandte Themen