'int?'之间有什么区别?和C#中的'int'?

时间:2008-09-23 15:21:10

标签: c# syntax types nullable

我90%肯定我之前在stackoverflow上看过这个答案,实际上我从未见过“int?”在这里看到它之前的语法,但无论我如何搜索我都找不到上一篇文章,这让我发疯了。

我可能偶然吃了有趣的蘑菇,但如果我不是,有人可以指出以前的帖子,如果他们能找到它或重新解释它吗?我的stackoverflow search-fu显然太低了....

7 个答案:

答案 0 :(得分:106)

INT?是Nullable<int>的缩写。

This可能是您要找的帖子。

答案 1 :(得分:29)

INT?是Nullable。

MSDN:Using Nullable Types (C# Programming Guide)

答案 2 :(得分:22)

INT?与Nullable是一回事。它允许你在int中使用“null”值。

答案 3 :(得分:6)

int属于System.ValueType,不能将null作为值。处理数据库或元素可以具有空值的其他类型时,检查元素是否为空可能很有用。那是什么时候?发挥作用。诠释?是一个可以为null的类型,其值可以从-2147483648到2147483648并且为null。

参考:https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

答案 4 :(得分:0)

符号?在int之后意味着它可以为空。

?符号通常用于变量可以接受null或整数的情况,或者返回整数或null。

希望使用环境有所帮助。通过这种方式,您不仅限于处理整数。

答案 5 :(得分:0)

当您期望整数中的空值时可以使用它,尤其是当您使用CASTING时 例如:

x= (int)y;

如果y = null,则将出现错误。 您必须使用:

x = (int?)y;

答案 6 :(得分:0)

Int不能接受null,但是如果开发人员正在使用int?然后将int存储为int 喜欢 int i = null; // 不接受 诠释? i =空; //它的工作 大多用于MVC页面列表中的分页