簡體   English   中英

在Visual Studio中進行調試時,兩倍意味着什么?[]

[英]while debugging in visual studio, what does double?[] mean

我正在Visual Studio中調試c#代碼,並且有如下變量:

double?[] x;
string[] y;

在本地窗口中,我看到x{double?[0]}y{string[0]} 這意味着什么?

  • double?[]double?的數組double? 對象,這只是C#的System.Nullable<System.Double>[]的簡寫。
  • string[]是字符串數組,與System.String[]相同。

進一步閱讀

double關鍵字表示存儲64位浮點值的簡單類型。

int?這樣的任何類型之后的問號int? 還是double? 表明此類型可為空。 方括號表明這是一個數組。 花括號內的數字表示數組中元素的數量。

我會盡量保持簡單。

[]結尾的任何內容都意味着它是該對象類型的數組。

int[]int的數組,

string[]string的數組,

float?[]float?數組float?

MyOwnClass[]是一個數組MyOwnClass等等...

數組是對象的集合。 因此,如果您說int[] a = new int[5] ,那么您正在創建一個可以容納5個int值的int數組。 因此,如果要具有三個int ,而不是聲明int aint bint c ,則只需創建int[] myArray = new int[3] 想象一下,創建所有這些int的方法,不只是針對三個元素,而是針對一千個元素。 這是不實際的,所以我們有數組。

在C#中,存在可以容納數值的數據類型( intfloatlong等),並且有些類沒有數值,但是具有更復雜的值的集合。 無法直接訪問類,當您在C#中訪問類(例如, myClass.myValue )時, myClass實際上只是對該類實例(具有myValue和所有其他值附加到該實例)的引用。 換句話說, myClass對象指向計算機RAM上的“地址”。 在該“地址”處,將找到您的實際數據(帶有myValue等)。 但是,如果myClass沒有指向任何地址怎么辦? 然后,它是一個空指針,這意味着myClass指向“地址零”,換句話說, myClass指向無效的,不存在的對象。

整數可以具有任何整數值,例如1、0,-1500、50000等。如果您希望能夠將int (或任何其他原始數據類型)設置為null(如類示例),該怎么辦? 你放一個? 在類型之后,而不是int ,而是鍵入int? 這是一種特殊的“可為空”類型,您也可以像設置類一樣將其設置為null。

因此,關於您的原始問題:

如果我們現在知道int是一個簡單的整數,

int[]是整數的集合,

int? 是一個整數,也可以具有特殊的“空”值。

然后double?[] x意思是“特殊的,可為null的double s的集合(它是類似int的原始數據類型)”。 為什么? 分成幾部分:您首先鍵入double ,告訴我們正在處理名為double的數據類型,然后添加了? ,意味着我們正在處理的double類型具有這種特殊的能力,使其具有為null的特殊能力,然后您添加了[] ,這意味着我們正在處理“ []之前的內容”的集合,在這種情況下, double?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM