Найти поле класса происходит от другого calsses - PullRequest
0 голосов
/ 18 января 2020
public class MyClassA
{
    public int Test;
    public List<MyClassB> StrTest; 
    public MyClassA()
    {
        StrTest = new List<MyClassB>();
        StrTest.Add(new MyClassB());
    }
}
public class MyClassB
{
    public int value;
}
private string ToStr()
{
    // By Reflection 
}
void main()
{
   MyClassA A = new MyClassA();
   string str = ToStr(A.StrTest[0].value);
   Console.WriteLine(str);
}

Вывод «A.StrTest [0] .value».

Основной вопрос - как найти поле класса из других классов

1 Ответ

0 голосов
/ 19 января 2020
public class MyClassA
{
    public int Test;
    public List<MyClassB> StrTest; 
    public MyClassA()
    {
        StrTest = new List<MyClassB>();
        StrTest.Add(new MyClassB());
    }
}
public class MyClassB
{
    public int value;
}
private string ToStr(Expression<Action> exp)
{
    string expBody = ((LambdaExpression)exp).Body.ToString();
    // some regex
    return expBody;
}
void main()
{
   MyClassA A = new MyClassA();
   Expression<Action> exp = () => A.StrTest[0].value.Equals(0);
   string str = ToStr(exp);
   Console.WriteLine(str);
}

по подсказке Клауса Гюттера, это работает. Спасибо

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