Qual è la differenza tra “int?” e ‘int’ in C #?

Sono sicuro al 90% di aver visto questa risposta su StackOverflow prima, infatti non avevo mai visto “int?” syntax prima di vederlo qui, ma non importa come cerco non riesco a trovare il post precedente, e mi sta facendo impazzire.

È ansible che abbia mangiato i funghi divertenti per caso, ma se non lo sono, qualcuno può indicare il post precedente se può trovarlo o ri-spiegarlo? Il mio stackoverflow search-fu è apparentemente troppo basso ….

int? è una scorciatoia per Nullable .

Questo potrebbe essere il post che stavi cercando.

int? è Nullable.

MSDN: utilizzo di tipi Nullable (C # Programming Guide)

int? è la stessa cosa di Nullable. Ti permette di avere valori “nulli” nel tuo int.

int appartiene a System.ValueType e non possono avere null come valore. Quando si ha a che fare con database o altri tipi in cui gli elementi possono avere un valore nullo, potrebbe essere utile verificare se l’elemento è nullo. Questo è quando int? entra in gioco. int? è un tipo nullable che può avere valori che vanno da -2147483648 a 2147483648 e null.

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

il simbolo ? dopo l’int significa che può essere annullabile.

Il ? il simbolo viene in genere utilizzato in situazioni in cui la variabile può accettare un numero intero o un intero o, in alternativa, restituire un numero intero o un valore nullo.

Spero che il contesto di utilizzo aiuti. In questo modo non sei limitato a trattare esclusivamente con numeri interi.