相关疑难解决方法(0)

为什么C#.net中的Expression的Body不能使用int,double或bool类型的属性?

我有一个功能:

private string GetPropertyName(Expression<Func<object, object>> f) {
    if ((f.Body as MemberExpression) != null) {
        return (f.Body as MemberExpression).Member.Name;
    }
    return "";
}
Run Code Online (Sandbox Code Playgroud)

它以这种方式使用:

string x1 = GetPropertyName(x => Property1);
string x2 = GetPropertyName(x => Property2);
string x3 = GetPropertyName(x => Property3);
Run Code Online (Sandbox Code Playgroud)

其中Property1是一个int,Property2是一个字符串,Property3是一个对象......

只有正确返回类型字符串和对象的Property2和Property3的名称,但Property1的f.Body作为MemberExpression为空...

为什么会这样,我们如何更改代码,以便函数正确返回属性的名称?

.net c# types expression properties

1
推荐指数
1
解决办法
2686
查看次数

标签 统计

.net ×1

c# ×1

expression ×1

properties ×1

types ×1