Ответ 1
Анонимные типы в С# неизменяемы и, следовательно, не имеют методов настройки свойств. Вам нужно будет создать новый анонимный тип со значениями
obj = new { Name = "asdasd", Price = 11.00 };
Что не так с этим фрагментом кода?
class Program
{
static void Main(string[] args)
{
var obj = new { Name = "A", Price = 3.003 };
obj.Name = "asdasd";
obj.Price = 11.00;
Console.WriteLine("Name = {0}\nPrice = {1}", obj.Name, obj.Price);
Console.ReadLine();
}
}
Я получаю следующие ошибки:
Error 5 Property or indexer 'AnonymousType#1.Name' cannot be assigned to -- it is read only .....\CS_30_features.AnonymousTypes\Program.cs 65 13 CS_30_features.AnonymousTypes
Error 6 Property or indexer 'AnonymousType#1.Price' cannot be assigned to -- it is read only .....\CS_30_features.AnonymousTypes\Program.cs 66 13 CS_30_features.AnonymousTypes
Как переопределить значения в объект анонимного типа?
Анонимные типы в С# неизменяемы и, следовательно, не имеют методов настройки свойств. Вам нужно будет создать новый анонимный тип со значениями
obj = new { Name = "asdasd", Price = 11.00 };
Анонимные типы создаются с свойствами только для чтения. Вы не можете назначить их после построения объекта.
От Анонимные типы (Руководство по программированию на С#) в MSDN:
Анонимные типы предоставляют удобный способ инкапсулировать набор свойств только для чтения в один объект без необходимости явно определять тип.
Анонимные типы предоставляют удобный способ инкапсулировать набор свойства только для чтения в один объект, не имея явно определить тип. Тип имя генерируется компилятором и недоступен в исходном коде уровень. Тип свойств выведенный компилятором. в следующем примере показан анонимный тип инициализируется двумя свойства, называемые Amount и Message.