0
点赞
收藏
分享

微信扫一扫

c#通过表达式获取调用的属性名称

那小那小 2022-07-28 阅读 52

/// <summary>
/// 获取表达式调用的字段名称
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="expr"></param>
/// <returns></returns>
private string GetPropertyName<T>(Expression<Func<T, object>> expr)
{
switch (expr.Body)
{
case MemberExpression memberExpression:
return memberExpression.Member.Name;
case UnaryExpression unaryExpression:
if (unaryExpression.Operand is MemberExpression expression)
{
return expression.Member.Name;
}

break;
default:
break;
}

return "";
}

调用方法

string desc = GetPropertyName<A>(f => f.Id);

System.Console.WriteLine(desc);


举报

相关推荐

0 条评论