Мне было интересно, есть ли что-то в c #, чтобы можно было передать член класса другой функции, которая будет использовать этот член для получения значения.Так что получите значение поля, определяемого только тем, которое во время выполнения.Что-то похожее на другие языки (по крайней мере, на мой взгляд, PHP), что вы можете сделать
a.b = "something"
, но также
a["b"] = "something";
edit: на самом деле это не очень хороший пример, так как используется строка,извините
Для ясности пример того, что я хотел бы сделать:
class A
{
int x;
int y;
}
void somethingsomething<T>(T class, SomeMagicFieldClass f)
{
dosomethingwith(somemethodthatgivesmethevalueoffield(class, f));
}
Где тогда я могу вызвать метод следующим образом:
A a = new A();
somethingsomething(a, A.x); //hypothetical notation
somethingsomething(a, A.y);
Теперь у меня есть нечто похожее, где я делаю:
somethingsomething(a, "x");
somethingsomething(a, "y");
Затем я иду, чтобы найти поле с помощью API самоанализа (также пытаюсь получить GetProperty)
MemberInfo memberInfo = item.GetType().GetField(fieldName);
Это работает, но недостатком является то,поля, переданные в виде строки, не будут обновляться при «рефакторинге» имен полей в Visual Studio, поэтому я подумал, может быть, есть что-то подобное в c #, которое будет автоматически реорганизовываться при изменении имен полей?
Большое спасибоза чтение этого скучного вопроса