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 ....

Antworten:




23

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


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


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.


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;

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


Dies scheint dasselbe zu sagen wie die andere Antwort.
JJ für Transparenz und Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.