Могу ли я указать значимое имя для анонимного classа в C #?

Мы все знаем, что когда мы создаем анонимный class следующим образом:

var Employee = new { ID = 5, Name= "Prashant" }; 

… во время выполнения он будет иметь тип:

 f__AnonymousType0 

Есть ли способ указать значимое имя для таких classов?

     public class Employee {} 

    Это анонимный тип, который побеждает цель. Эти объекты предназначены для временного использования. Черт, свойства даже доступны только для чтения.

    Извините, я умная задница. Ответ отрицательный, нет способа сообщить компилятору, какое имя использовать для анонимного типа.

    Фактически, имена типов, сгенерированных компилятором, используют незаконные символы в их наименовании, чтобы вы не могли столкнуться с именами в своем приложении.

     public class Employee { public int ID { get; set; } public string Name { get; set; } } 

    Затем используйте следующий синтаксис

     var employee = new Employee { ID = 5, Name = "Prashant" }; 

    Сделать его обычным classом с именем?

     public class Employee { public int ID; public string Name; } var Employee = new Employee { ID = 5, Name= "Prashant" }; 

    На самом деле, если вы не боитесь получить чрезвычайно суровый характер, вы можете использовать TypeBuilder для создания собственного типа времени выполнения на основе вашего анонимного типа, что позволит вам указать имя для этого типа. Конечно, гораздо проще просто объявить class, как и почти все остальные в этой теме, но способ TypeBuilder намного интереснее. 😉

    TypeBuilder

    Ответ в Java World был бы локальным classом (определенным в методе), отсутствующим в C #.

    Да, вы создаете анонимный class , если хотите, чтобы ваш class имел имя, то есть не анонимный , затем объявлял обычный class или структуру.

    Поскольку это анонимно, вы не можете назвать его. Если вам нужно знать имя типа, вы должны действительно создать class.

    Нет, нет способа дать значимое имя типа этим classам, как вы их объявили. Анонимные типы – это просто анонимный. Невозможно явно «называть» тип кода, не прибегая к очень уродливым взломам.

    Если вам действительно нужно указать тип имени, вам нужно явно объявить и использовать новый тип со свойствами, которые вам нужны.

    Я думаю, что, по определению, анонимные типы не могут иметь имя, просто то, что дает его компилятор. Если вы ищете более значимую информацию о времени разработки для анонимных типов, вы ожидаете слишком многого от компилятора.