Я пытаюсь получить имя переменной свойства вместо значения. В настоящее время я использую отражение, но если у кого-то есть другие предложения, это было бы очень признательно.
У меня задействовано три класса
A:
class A
{
public B bObject;
int Number { return bObject.number; } //returns 3
}
B:
class B
{
public int number = 3;
}
C:
class C
{
public void myMethod()
{
A aObject = new A();
var aNumber = aObject
.GetType()
.GetProperty("Number")
.GetValue(aObject, null);
//this is the value. aNumber = 3.
var objName = nameof(aNumber); //returns aNumber
}
Я хочу, чтобы objName возвращал строку "bObject.number", переменную, которая была вызвана внутри свойства. Возможно ли это с моей текущей настройкой, и если нет, есть ли у кого-нибудь рекомендации?
Я бы предпочел, чтобы в B не было другого метода, возвращающего «nameof (bObject) + nameof (bObject.number)», а затем вызывающего как этот метод, так и опору из-за избыточности. Спасибо за ваше время.
int Number => 3;
? Проверку кода лучше всего оставить для инструментов, которые работают в IDE, если вы хотите это сделать, я бы посоветовал взглянуть на плагины VS и анализаторы кода Rosyln. - person Ron Beyer   schedule 27.08.2018NullReferenceException
, потому что он не инициализирован. Даже если бы это было так, переменная может быть оптимизирована и, возможно, искажена при работе в режиме Release. - person Ron Beyer   schedule 27.08.2018