繁体   English   中英

声明(可空)双打数组?

[英]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.00D将被视为双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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM