C# Анонимный массив в фигурных скобках - PullRequest
0 голосов
/ 18 апреля 2020

Я учу C# и массивы, на самом деле анонимные массивы. Это происходит ... когда я их печатаю, я получаю значения в фигурных скобках ... кто-нибудь почему ??

Анонимный массив

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

Foreach

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

Выход

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

Ответы [ 3 ]

0 голосов
/ 18 апреля 2020

Пожалуйста, проверьте ваш код, возможно, вы использовали (до обновления) что-то вроде кода ниже. В этом случае фигурные скобки означают экземпляр анонимного типа (метод ToString по умолчанию).

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

foreach(var variable in valores)
{
    Console.WriteLine(variable);
}
0 голосов
/ 18 апреля 2020

Когда вы oop массиве, вы фактически печатаете весь анонимный тип <anonType>.ToString(), как это используется по умолчанию.

Если вы хотите напечатать значение, вы должны напечатать их по одному, поскольку вы не можете переопределить .ToSTring() для анонимных типов.

что-то подобное будет работать:

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

foreach (var values in valores)
{
    Console.WriteLine(values.valor);
}
0 голосов
/ 18 апреля 2020

кто-нибудь почему ??

Потому что именно так записывает реализация ToString по умолчанию. Он генерирует код, перечисляющий имена и значения свойств. Предполагая, очевидно, что мы избавляемся от того факта, что вы выводите «переменную», но называете значения и значения - так что на самом деле это должно вызвать ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...