簡體   English   中英

C# 大括號之間的匿名數組

[英]C# Anonymous Array between curly brackets

我正在學習 C# 和 arrays,實際上是匿名 Arrays。 這是發生了什么......當我打印它們時,我得到了大括號之間的值......有人為什么嗎?

匿名數組

var valores = new[]
{
  new{valor = 1},
  new{valor = 2},
  new{valor = 3}
};

前鋒

foreach(var values in valores)
{
    Console.WriteLine(values);
}

Output

{ valor = 1 }
{ valor = 2 }
{ valor = 3 }

有人為什么嗎?

因為這就是 ToString 的默認實現的寫法。 它生成代碼列表屬性名稱和值。 顯然,假設我們擺脫了您 output “變量”但命名 valores 和值的事實 - 所以它實際上應該引發錯誤。

請檢查您的代碼,可能您使用過(更新前)類似下面的代碼。 在這種情況下,花括號表示匿名類型的實例(默認 ToString 方法)。

var valores = new[]
{
  new {valor = 1},
  new {valor = 2},
  new {valor = 3}
};

foreach(var variable in valores)
{
    Console.WriteLine(variable);
}

當您循環數組時,您實際上是在打印整個匿名類型<anonType>.ToString()作為默認實現。

如果您要做的是打印值,則必須一一打印,因為您無法在匿名類型上覆蓋.ToSTring()

類似的東西會起作用:

var valores = new[]
{
    new{valor = 1},
    new{valor = 2},
    new{valor = 3}
};

foreach (var values in valores)
{
    Console.WriteLine(values.valor);
}

暫無
暫無

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

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