2010-12-03 12 views
3

null zurückgeben Ich habe eine Methode, deren Rückgabetyp ein Nullable int ist.Kann nicht mit bedingten (? :) -Operator

Ich versuche, den Code zu bereinigen und entschieden, einen bedingten Operator für die Rückgabeanweisung zu verwenden.

Grundsätzlich, wenn die ID nicht 0 ist, gehen Sie einen Kopf und geben Sie die ID zurück. Es sollte niemals 0 von der db zurückgeben. Wenn es zufällig 0 ist, gebe null zurück.

Der Fehler ist „Art des bedingten Ausdrucks nicht bestimmt werden kann, weil es keine implizite Konvertierung zwischen‚int‘und‚‘“

Die bedingte op soll ein funktionierender If ... Else-Anweisung ersetzen.

Gibt es etwas Falsches, wenn Sie versuchen, in dieser Kombination einen bedingten Code zu verwenden? Was vermisse ich?

+0

Stellen Sie sicher, id ein 'int ist?', Und nicht eine 'int'. –

+0

Sie vergleichen die Variable ID mit 0 und geben eine andere Variable mit dem Namen Id (Großbuchstabe I) zurück. Ist das beabsichtigt? – Bazzz

Antwort

2

Ist id vom Typ int? (und nicht int)?

4

Versuchen return id != 0 ? Id : (int?)null;?

+1

Lustig genug, 'return id! = 0? (int?) Id: null; 'funktioniert auch. –

3

Sie brauchen etwas, um den Typ zu zwingen, wie

return id != 0? (int?)Id : null 
1

prüfen diese

private int? getme() 
    { 
     int? id; 
     id= 0; 
     return id != 0 ? id : null; 
    } 
Verwandte Themen