Я возился с анонимными типами, и я случайно вывел его на консоль. Это выглядело в основном так, как я его определил.
Здесь короткая программа, которая воспроизводит ее:
using System;
class Program
{
public static void Main(string[] args)
{
int Integer = 2;
DateTime DateTime = DateTime.Now;
Console.WriteLine(new { Test = 0, Integer, s = DateTime });
Console.ReadKey(true);
}
}
Теперь выход:
{ Test = 0, Integer = 2, s = 28/05/2013 15:07:19 }
Я попытался использовать dotPeek, чтобы попасть в сборку, чтобы узнать, почему, но это не помогло. [1] Здесь код dotPeek'd:
// Type: Program
// Assembly: MyProjectName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// Assembly location: Not telling you! :P
using System;
internal class Program
{
public static void Main(string[] args)
{
Console.WriteLine((object) new
{
Test = 0,
Integer = 2,
s = DateTime.Now
});
Console.ReadKey(true);
}
}
Так что совсем не совсем так.
Итак, как это работает? Как это выводится так?
Примечания:
[1]: Я забыл включить "Показывать код, сгенерированный компилятором", поэтому я не понял, как это работает.