使用int16有什么好处?

What is the benefit of using int16? instead of int16 in a .net variable declaration?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
C# - Basic question: What is '?' ?

使用Int16有什么好处?而不是在.NET变量声明中使用Int16?

1
2
dim i as int16?
dim i as int16

它允许您有一个"空"值。一般示例:

1
2
3
4
5
6
7
8
9
10
11
public int MyFunction(int? x)
{
    int m = 99;

    if(x == null)
        m = 0;
    else
        m /= x.Value;

    return m;
}

否则,如果尝试将空值传递给MyFunction,编译器将返回一个错误。


它并不是真正的"利益",而是表示一些细微的不同;Int16?实际上只是Nullable的简写,这意味着它除了常规的Int16范围之外,还能够表示空/空状态。但缺点是它需要更多的空间。因此,如果你的目标是空间效率(主要是在数组中才有意义等等),你可能需要仔细考虑。


问号表示可以为空的类型:http://msdn.microsoft.com/en-us/library/1t3y8s4s%28v=vs.100%29.aspx