webentwicklung-frage-antwort-db.com.de

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

Ich bin mir zu 90% sicher, dass ich diese Antwort schon vorher auf stackoverflow gesehen habe. Tatsächlich hatte ich noch nie das "int" gesehen. Syntax, bevor ich es hier sehe, aber egal wie ich suche, ich kann den vorherigen Post nicht finden, und es macht mich verrückt.

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

71
cori

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

Dies kann der Beitrag sein, nach dem Sie gesucht haben.

105
29
KyleLanser

int? ist das gleiche wie Nullable. Damit können Sie "Null" -Werte in Ihrem Int.

22
Charles Graham

int gehört zu System.ValueType und darf als Wert nicht null haben. Beim Umgang mit Datenbanken oder anderen Typen, bei denen die Elemente einen Nullwert haben können, kann es nützlich sein, zu prüfen, ob das Element Null ist. Das ist wann int? kommt ins Spiel. int? ist ein nullfähiger Typ, der Werte zwischen -2147483648 und 2147483648 und null haben kann.

Referenz: https://msdn.Microsoft.com/de-de/library/1t3y8s4s.aspx

6
Krishnaveni B

das Symbol ? hinter dem int bedeutet, dass es nullwertfähig sein kann. 

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

Hoffe, der Kontext der Nutzung hilft. Auf diese Weise sind Sie nicht nur auf den Umgang mit ganzen Zahlen beschränkt. 

0
sanmatrix

Int kann null nicht akzeptieren, aber wenn Entwickler int verwenden? dann speichern Sie null in int wie int i = null; // Int nicht akzeptieren? i = null; // wird hauptsächlich für die Paginierung in MVC Pagelist verwendet

0

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

x= (int)y;

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

x = (int?)y;