是什麼類型化和非類型化的代表
var propertyResolver = Expression.Lambda<Func<Person, object>>(expr, arg).Compile();
string name = (string)propertyResolver(p);
和
var propertyResolver = Expression.Lambda(expr, arg).Compile();
string name = (string)propertyResolver(p);
之間的差別在第二種情況下有某種「非類型化」的代表。
那是什麼?
編輯:
ParameterExpression arg = Expression.Parameter(p.GetType(), "x");
Expression expr = Expression.Property(arg, "Name");
這是什麼類型的'expr'? –
特別是,第二個版本是爲你編譯的嗎? –
都編譯。 ParameterExpression arg = Expression.Parameter(p.GetType(),「x」); Expression expr = Expression.Property(arg,「Name」); –