Как получить название недвижимости? - PullRequest
0 голосов
/ 30 октября 2009

Это может показаться странным вопросом, но ....

public string MyProperty
{
    get
    {
        return "MyProperty";
    }
}

Как я могу заменить оператор return, если он возвращает имя свойства без его жесткого кодирования?

Ответы [ 3 ]

9 голосов
/ 30 октября 2009

Я бы не рекомендовал делать это в целом, но здесь мы идем:

return MethodBase.GetCurrentMethod().Name.Substring(4);

Кстати, использование обфускатора может полностью облажаться.

1 голос
/ 30 октября 2009

Если вы используете .NET, вы также можете использовать LINQ для определения этого:

public static string GetName<T>(Func<T> expr)
{
  var il = expr.Method.GetMethodBody().GetILAsByteArray();
  return expr.Target.GetType().Module.ResolveField(BitConverter.ToInt32(il, 2)).Name; 
}

Я не могу претендовать на кредит для этого решения - оно пришло от здесь .

0 голосов
/ 24 мая 2018

из C # 6, вы можете использовать атрибут nameof для печати имени свойства или имени метода.

switch (e.PropertyName)
{
    case nameof(YourProperty):
    { break; }

    // instead of
    case "YourProperty":
    { break; }
}

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/nameof

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