Controllare se integer == null

Voglio controllare se il mio Listentry = null ma non so come.

Nota:
ID è un numero Intero

Ecco il mio Codice

if(MeineGaeste[i].ID !=null)
{
    i++;
}
else
{
    MeinGast.ID = i++;
    test = false;
}
  • Numeri interi non può essere null. È dichiarato come int o int? ?
  • Se il ID membro è ha dichiarato come int, quindi il confronto ID != null è privo di significato. Si otterrà un avviso in fase di compilazione su di esso.
InformationsquelleAutor Yannik | 2016-05-25



3 Replies
  1. 13

    Come detto, di un int non può essere null. Se un valore non è impostato, il valore di default credo sia zero. Si può fare un controllo di 0 se questo è ciò che si pensa che è stato impostato…

    Altrimenti se siete appassionati di evitare nullable numeri interi, si sarebbe svolta in una stringa e poi eseguire il controllo.

    String.IsNullOrEmpty(ID.ToString());

    Che restituisce un valore booleano, in modo che si può attaccare in un’istruzione if.

    • Che è grande! Lo farò anche io 🙂 Grazie
    • Impressionante, si prega di contrassegnare come risposta ha aiutato!
  2. 5

    Un int non può essere null. D’altra parte un nullable int, int?, può essere. Detto questo, il controllo che si vuole fare è privo di significato.

    Di cambiare il tipo di ID da int per int? di controllo, che si fa ha un senso, e che il compilatore non lamentarsi.

    • Grazie ypu per la risposta. Ma come posso utilizzare int? nel mio programma.?
    • Grazie per la risposta, ma hiw posso usare int? nel mio programma? Questo è un piccolo Pezzo del mio schoolproject.
    • sono i benvenuti. Questo dipende da cosa si vuole fare. Per essere onesti, io non ottenere ciò che stanno cercando di raggiungere. Tuttavia, la prima cosa che si potrebbe avere a che fare, come posso dedurre dal tuo post, è quello di cambiare il tipo di ID da int per int?
    • così? private int? _ID; public int? ID { get { return _ID; } set { _ID = value; } }
    • Esattamente ! Dal modo, dal momento che non si dispone di alcuna logica nel setter o nel getter, si potrebbe eliminare il sopra il seguente: public int? ID { get; set; }
    • Lo so, ma è un Pezzo di un compito in classe 🙂 ho Bisogno di fare questo
    • No ist non funziona mi dispiace 🙁
    • Che cosa è l’errore?
    • Il risultato è sempre vero, dato un numero intero non può essere null
    • Come è possibile? Dal momento che il tipo di ID è un nullable int, ID può essere null.

  3. 0

    Come un normale int tipo è un tipo di valore, non può essere null.

    È possibile utilizzare il tipo nullable int? per la proprietà ID che è fondamentalmente una struttura, che permette null o qualsiasi int valore. Vedere MSDN o questa domanda o questa domanda per ulteriore documentazione.

    Se non è possibile modificare il tipo di ID proprietà, una soluzione potrebbe essere quella di scegliere un numero intero come indicatore valore che è garantito per non compaiono nel modello (ad esempio Int32.MinValue, come la maggior parte generati Id sembrano essere numeri interi positivi). Non fare questo se non è necessario, come questo sarà molto probabilmente portare ad errori. Vorrei almeno consiglia di lanciare un’eccezione se la serializzazione di modelli con tale indicatore valore.

    • Grazie, so che la mia Domanda non era perfetto.. ho Bisogno di un alternativa.

Lascia un commento