Was ist der Unterschied zwischen 'int'? und 'int' in C #?

83

Ich bin zu 90% sicher, dass ich diese Antwort beim Stackoverflow schon einmal gesehen habe. Tatsächlich hatte ich das "int?" Syntax, bevor ich sie hier sehe, aber egal wie ich suche, ich kann den vorherigen Beitrag nicht finden und es macht mich verrückt.

Es ist möglich, dass ich versehentlich die lustigen Pilze gegessen habe, aber wenn nicht, kann jemand bitte auf den vorherigen Beitrag hinweisen, wenn er ihn finden oder neu erklären kann? Mein Stackoverflow Search-Fu ist anscheinend zu niedrig ....

cori
quelle

Antworten:

121

int? ist eine Abkürzung für Nullable<int>.

Dies könnte der Beitrag sein, nach dem Sie gesucht haben.

Vergessenes Semikolon
quelle
23

int? ist dasselbe wie Nullable. Es ermöglicht Ihnen, "null" -Werte in Ihrem int zu haben.

Charles Graham
quelle
6

int gehört zu System.ValueType und kann nicht null als Wert haben. Wenn Sie mit Datenbanken oder anderen Typen arbeiten, bei denen die Elemente einen Nullwert haben können, kann es hilfreich sein, zu überprüfen, ob das Element Null ist. Das ist, wenn int? kommt ins Spiel. int? ist ein nullbarer Typ, der Werte zwischen -2147483648 und 2147483648 sowie null haben kann.

Referenz: https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

Krishnaveni B.
quelle
0

das Symbol ? nach dem int bedeutet, dass es nullbar sein kann.

Das ? Das Symbol wird normalerweise in Situationen verwendet, in denen die Variable eine Null oder eine Ganzzahl akzeptieren oder alternativ eine Ganzzahl oder eine Null zurückgeben kann.

Hoffe der Nutzungskontext hilft. Auf diese Weise sind Sie nicht nur auf Ganzzahlen beschränkt.

Sanmatrix
quelle
0

Sie können es verwenden, wenn Sie einen Nullwert in Ihrer Ganzzahl erwarten, insbesondere wenn Sie CASTING verwenden, z.

x= (int)y;

Wenn y = null, wird ein Fehler angezeigt. Sie müssen verwenden:

x = (int?)y;
Mohammad Taher Assad
quelle
0

Int kann nicht null akzeptieren, aber wenn Entwickler int verwenden? dann speichern Sie null in int wie int i = null; // int nicht akzeptieren? i = null; // Es funktioniert hauptsächlich für die Paginierung in der MVC-Seitenliste

Fahad Jamal uddin
quelle
Dies scheint dasselbe zu sagen wie die andere Antwort.
JJ für Transparenz und Monica