2010-06-14 45 views

cevap

16
return id.Value; // If you are sure "id" will never be null 

veya

return id ?? 0; // Returns 0 if id is null 
+1

id id değeri boş olduğunda 'id.Value' bir istisna atar. Bazı durumlarda, bu uygun olacaktır, aksi halde, '' 'kullanın. –

+0

Önerdiğim bu değil miydi? –

+0

Sadece Nullable <> ile çalışabilir mi, yoksa aynı zamanda normal referans türleri mi? –

3
return id.Value; 

Sen id.HasValue doğruysa, kontrol etmek istiyorum ve 0 döndürebilir ya da bir şey değilse yardım için

public int Save(Contact contact) 
{ 
    int? id; 
    context.Save_And_SendBackID(contact.FirstName, contact.LastName, ref id); 
    //How do I return an int instead of an int? 
} 

teşekkürler.

0
if (id.HasValue) return id.Value; 
else return 0; 
+1

veya ** dönüş kimliği ?? 0 **. Tam olarak aynı :) –

+1

Bu "id" 0 " – Blorgbeard

+0

@Blogbeard demenin oldukça uzun bir yoludur: Teknik olarak,' dönüş kimliği? 0; ':) –

6

Sen Nullable üzerinde GetValueOrDefault() işlevini kullanabilirsiniz. Bu coalescing answer by Richard77 benzer ancak ben biraz daha okunabilir demek ki

return id.GetValueOrDefault(0); // Or whatever default value is wise to use... 

Not ...

Ancak bu karar verirken iyi bir fikir size kalmış olmasıdır. Bu belki de bir istisna daha uygun mu?

if (! id.HasValue) 
    throw new Exception("Value not found"); // TODO: Use better exception type! 

return id.Value; 
+1

+1 düşünmedim. Bana öyle geliyor ki, pek çok programcı, bir varsayılan değer kullanmadan çok hızlıdır; – Phong

0
return id.HasValue ? id.Value : 0; 

bu diğer vakada boş değil durumunda id değerini ve 0 değerini döndürür.

+0

İade iadesiyle ilgili sorun nedir? 0; ', aynı şeyi yapan ve daha verimli olan? –