C# double?

来源:百度知道 编辑:UC知道 时间:2024/05/12 03:33:57
double?[] dou=new double?[]();
加上?有什么作用
是实现接口还是泛型,我没有论证,知道可以为空就ok了

加上?的意思是可以为null,因为double是基本类型,不允许赋值null,但有的时候需要null,其实就是实现了nullable接口

不是nullable接口,是System.Nullable<T>这个泛型结构。
MSDN定义:
[SerializableAttribute]
public struct Nullable<T> where T : struct, new()

double?就是Nullable<double>的简写。

  double是双精度类型,精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间, 当不声明的时候,默认小数都用double来表示。
  Double是一个类,double是一种基础数据类型,不过c#把double默认的转换成了Double,就是申明了一个double的数据,c#会根据这个double数据自动建立一个Double对象。
  另外,double是一个关键字,不过基本上所有的c#编译器都把double直接解释成Double,类似的还有int和Int32,long和Int64等等。

如果该数组是以方法参数的方式出现 意思就是调用方法时可以不传这个参数

void function(double?[] dou, string a)
{

}
void main()
{
function("字符串");
function(new double[], "字府串");
}

麻烦、 烦恼 等(具体意思结合语境)