Я пытаюсь написать метод, который бы взял объект с именем свойства в качестве параметра лямбда, и использовать его на переданном объекте, но также использовать его на другом, новом объекте тот же тип, созданный внутри этого метода.C# свойство многократного использования, которое будет вызываться передано lambda
Цель состоит в том, чтобы использовать одно и то же свойство на обоих объектах. Имя свойства должно передаваться в качестве параметра методу (лямбда-выражение).
Позвольте мне показать, что я написал до сих пор (не компилируется):
Объект будет использоваться:
public class ObjectMy
{
public string Prop1 {get; set;}
}
метод в другом классе для использования с выше объекта:
Я хочу установить переданное в имени метода свойство экземпляра объекта ObjectMy для «Test string» , а затем рекурсивно вызвать DoSomethingOnProperty на другом, новом экземпляре Obj ectMy, и используйте то же имя свойства, что и в первом вызове DoSomethingOnProperty.
Я хотел бы назвать это как
DoSomethingOnProperty(obj=>obj.Prop1);
Спасибо.
задом !!! .Выберите (x => DoSomethingOnPropery (x)). Метод должен DoSomethingOnPropery возвращать значение, а не использовать void. Если вы просто хотите изменить значение, тогда введите код в цикл for. – jdweng
Итак, 'DoSomethingOnProperty' должен изменить одно и то же свойство в нескольких объектах? Тогда почему он имеет только аргумент «имя свойства», но не аргумент «ObjectMy»? Вы пытаетесь изменить выражение, представляющее собой код. В этот момент нет даже экземпляра 'ObjectMy' для работы вообще. –
Если я правильно понимаю вашу проблему, гораздо проще было бы передать метод set-property, поэтому ваш метод может вызывать его как можно больше объектов: 'DoSomethingOnProperty (Action setProperty) {var object1 = new ObjectMy(); setProperty (object1, "Test string"); ...} '. Затем это можно назвать следующим: 'DoSomething ((obj, value) => {obj.Prop1 = value;})'. –