C# 在C中以字符串形式获取属性名称#

C# 在C中以字符串形式获取属性名称#,c#,reflection,C#,Reflection,是否可以编写一个返回对象属性字符串值的函数 如果我有一个名为apple的对象,它有一个名为peel的方法,我希望有一个在调用getAttributeName(apple.peel)时返回“peel”的方法 我该怎么做呢?您可以编写一个扩展方法 public static string GetPropName<T, P>(this T obj, Expression<Func<T, P>> lambda) { var member = lambda.Bo

是否可以编写一个返回对象属性字符串值的函数

如果我有一个名为apple的对象,它有一个名为peel的方法,我希望有一个在调用getAttributeName(apple.peel)时返回“peel”的方法


我该怎么做呢?

您可以编写一个扩展方法

public static string GetPropName<T, P>(this T obj, Expression<Func<T, P>> lambda)
{
    var member = lambda.Body as MemberExpression;
    var prop = member.Member as PropertyInfo;
    return prop.Name;
}

您可以编写一个扩展方法

public static string GetPropName<T, P>(this T obj, Expression<Func<T, P>> lambda)
{
    var member = lambda.Body as MemberExpression;
    var prop = member.Member as PropertyInfo;
    return prop.Name;
}

谷歌的第一个热门话题:你为什么要这么做?如果你知道这个方法叫“peel”,你可以把“peel”放在一个字符串中。很难理解你的观点。我不相信你看不到这样的问题:当你第一次在谷歌上输入问题的标题时:你为什么要这样做?如果你知道这个方法叫“peel”,你可以把“peel”放在一个字符串中。很难理解你的观点。我不相信你看不到任何一个问题,比如当你键入问题的标题时