1. 程式人生 > 其它 >c#通過表示式獲取呼叫的屬性名稱

c#通過表示式獲取呼叫的屬性名稱

/// <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);
留待後查,同時方便他人
聯絡我:[email protected]