2012-02-15 114 views
3

我有一個int我想保存爲int? 這是可能的,如果是的話如何?如何轉換int到int?,在C#中?

+0

保存?哪裏?考慮在你的問題中增加一點*(例如任何)上下文。 – 2012-02-15 09:33:42

+0

那麼我試過這個'int? status2 = new Nullable (someThing);'這個想法實際上並不是那麼糟糕,我現在可以看到它的工作。我剛剛與someThing發生了錯誤,並且我認爲錯誤是我使用的新Nullable 代碼。所以我欺騙了我的自己:( – radbyx 2012-02-15 09:55:46

+0

someThing來自一個文本框。我不記得錯誤,但我認爲我是一個解析錯誤或更高的代碼中的其他錯誤,使我困惑。 – radbyx 2012-02-15 09:57:13

回答

18

有一個隱式轉換:

int nonNullable = 5; 
int? nullable = nonNullable; 

(這是在C#規範的第6.1.4節中給出)

相反的操作是不安全的,當然,這是因爲可爲空的值可以是空值。這裏有一個明確的轉換,或者您也可以使用Value屬性:

int? nullable = new int?(5); // Just to be clear :) 

// These are equivalent 
int nonNullable1 = (int) nullable; 
int nonNullable2 = nullable.Value; 
+0

是的。清晰,簡潔的答案。 – FarligOpptreden 2012-02-15 09:34:26

+0

感謝你和Øyvind的回答。 – radbyx 2012-02-15 10:04:23

2

這又是自動的。比方說,你有以下INT

int myInt = 5; 

然後你可以編寫以下沒有問題:

int? myNullableInt = myInt;