Передача свойства в метод и установка его внутри этого метода - PullRequest
1 голос
/ 04 июня 2019

У меня есть класс, например:

public class MyClass
{
    public string Name { get; set; }
    public string LastName { get; set; }
    public int SomethingElse { get; set; }
}

Тогда я хочу иметь method, чтобы иметь возможность вызывать его с такими аргументами:

private void KeepingItDRY(MyClass myClass, string valueToSet, ????? PropertyNameToSetItOn)
{
    // some stuff 
    myClass.PropertyNameToSetItOn = valueToSet;
}

Но я не уверен, как этого добиться?

1 Ответ

2 голосов
/ 04 июня 2019
class Program
{
    static void Main(string[] args)
    {
        new Program().Run();
    }

    private void Run()
    {
        MyClass myClass = new MyClass();
        KeepingItDRY(myClass, "SomeName", "Name");
        System.Console.WriteLine(myClass.Name);
    }

    private void KeepingItDRY<T>(T target, object value, string property) =>
        typeof(T).GetProperty(property).SetValue(target, value);
}

public class MyClass
{
    public string Name { get; set; }
    public string LastName { get; set; }
    public int SomethingElse { get; set; }
}

Дает:

SomeName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...