2012-02-15 84 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;