我在 Visual Studio 中调试 c# 代码,其中有一些变量,例如:
double?[] x;
string[] y;
在本地窗口中,我看到x
as{double?[0]}
和y
as {string[0]}
。这意味着什么?
double?[]
是一个double?
对象数组,它只是 C# 对System.Nullable<System.Double>[]
.string[]
是一个字符串数组,与System.String[]
.延伸阅读
double 关键字表示存储 64 位浮点值的简单类型。
我会尽量保持简单。
任何以结尾的[]
都意味着它是该对象类型的数组。
int[]
是一个数组int
,
string[]
是一个数组string
,
float?[]
是一个数组float?
,
MyOwnClass[]
是一个数组MyOwnClass
等等......
数组是对象的集合。因此,如果您说,您正在创建一个可以容纳 5 个值int[] a = new int[5]
的数组。因此,如果您想要三个s,而不是声明, , ,您只需创建. 想象一下创建所有这些整数,不仅仅是为三个元素,而是为一千个元素。这不实用,所以我们有数组。int
int
int
int a
int b
int c
int[] myArray = new int[3]
在 C# 中,有些数据类型(int
、float
等long
)可以保存数值,有些类没有数值,但有一组更复杂的值。类不是直接访问的,当您在 C# 中访问一个类时(例如myClass.myValue
),myClass
实际上只是对该类实例的引用(它具有myValue
以及附加到它的所有其他值)。换句话说,myClass
对象指向您计算机 RAM 中的“地址”。在那个“地址”,您的实际数据(以及myValue
等)位于。但是如果myClass
不指向任何地址呢?然后,它是一个空指针,这意味着myClass
指向“地址零”,换句话说,myClass
指向一个无效的、不存在的对象。
整数可以有任何整数值,例如 1、0、-1500、50000 等。如果您希望能够将一个int
(或任何其他原始数据类型)设置为 null,就像类示例一样?你?
在类型后面放了一个,所以int
你输入的是 ,而不是int?
。它是一种特殊的“可空”类型,您也可以像类一样将其设置为空。
所以关于你原来的问题:
如果我们现在知道这int
是一个简单的整数,
int[]
是整数的集合,
int?
是一个整数,也可以具有特殊的“null”值。
Thendouble?[] x
表示“特殊的、可为空double
的 s 的集合(即原始数据类型,如int
)”。为什么?把它拆成几块:你先键入,告诉double
我们正在处理的数据类型叫做这意味着我们正在处理“以前的任何东西”的集合,在这种情况下,.double
?
double
[]
[]
double?
任何类型后的问号
表示int?
或
double?
表明该类型可以为空。方括号表明这是一个数组。大括号内的数字表示数组中元素的数量。