C# вопрос анонимного типа
В следующем коде почему переменные c2 и c3 имеют другой анонимный тип?
Заранее спасибо за любые советы и... ура!
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
var c1 = new Customer { Name = "Mark", Country = "USA" };
var c2 = new { c1.Name, c1.Country }; //"<>f__AnonymousType0`2"
var c3 = new { c1.Country, c1.Name }; //"<>f__AnonymousType1`2"
}
}
public class Customer
{
public string Name { get; set; }
public string Country { get; set; }
}
}
1 ответ
Решение
Потому что вы инициализировали их свойства в разных порядках.
Они будут скомпилированы в один и тот же анонимный тип, если вы инициализируете их в том же порядке. Из документов MSDN по анонимным типам:
Если два или более анонимных типа в одной сборке имеют одинаковое количество и тип свойств, в одном и том же порядке, компилятор обрабатывает их как один и тот же тип.