[英]Declare an array of (nullable) doubles?
我有这个声明:
double?[] x = 0;
我不知道如何声明零,因为看来这不是正确的方法。
它说:
无法将类型'int'隐式转换为'double?[]'
我已经在互联网上搜索了解决方案,但是发现的所有内容都帮不了我。 有什么建议吗?
double a = 0; // single double
double? b = 0; // single nullable double
double[] c = new double[] { 0 }; // array with a single double
double?[] d = new double?[] { 0 }; // array with a single nullable double
请注意,此处的0
被视为双常量。 更一般而言-尽管添加句点或D
; 0.0
或0D
将被视为双0D
,因此:
var e = 0; // single int32
var f = 0.0; // single double
var g = 0D; // single double
var h = new[] { 0D }; // array with a single double
您正在尝试将整数转换为双精度数组。 这行不通。 要声明数组,请执行以下操作:
double?[] x = {0, 0};
编译器会将整数零转换为双精度。
您正在声明(可为空)双精度数组。 您不能这样设置数组。
如果只需要一个值,则以下内容完全有效:
double? x = 0;
数组有点不同,它们是多个数字。 因此,您需要首先将其初始化为数组。
double?[] x = new double?[] { 0 };
请记住,上面的内容将组成一个大小为1的数组。
至于可为空的部分,您是否希望变量在任何时候都为NULL? 如果不是,建议使用普通的double
而不是可空版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.