0

我在 Visual Studio 中调试 c# 代码,其中有一些变量,例如:

double?[] x;
string[] y;

在本地窗口中,我看到xas{double?[0]}yas {string[0]}。这意味着什么?

4

4 回答 4

9
  • double?[]是一个double?对象数组,它只是 C# 对System.Nullable<System.Double>[].
  • string[]是一个字符串数组,与System.String[].

延伸阅读

于 2013-10-01T22:30:48.620 回答
0

double 关键字表示存储 64 位浮点值的简单类型。

于 2013-10-01T22:32:17.920 回答
0

我会尽量保持简单。

任何以结尾的[]都意味着它是该对象类型的数组。

int[]是一个数组int

string[]是一个数组string

float?[]是一个数组float?

MyOwnClass[]是一个数组MyOwnClass等等......

数组是对象的集合。因此,如果您说,您正在创建一个可以容纳 5 个值int[] a = new int[5]的数组。因此,如果您想要三个s,而不是声明, , ,您只需创建. 想象一下创建所有这些整数,不仅仅是为三个元素,而是为一千个元素。这不实用,所以我们有数组。intintintint aint bint cint[] myArray = new int[3]

在 C# 中,有些数据类型(intfloatlong)可以保存数值,有些类没有数值,但有一组更复杂的值。类不是直接访问的,当您在 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?

于 2013-10-03T20:18:52.187 回答
0

任何类型后的问号 表示int?double?表明该类型可以为空。方括号表明这是一个数组。大括号内的数字表示数组中元素的数量。

于 2013-10-02T03:48:26.867 回答