觀察以下代碼:
static void Main(string[] args)
{
var f = new Foo();
Expression<Func<string>> x = () => f.Bar;
MemberExpression y = (MemberExpression) x.Body;
Expression z = y.Expression;
}
class Foo
{
public string Bar { get; set; }
}
當我打破并觀察z時,我可以看到它有一個基本型別
問題是我不能明確地將其轉換為后者:
System.Linq.Expressions.FieldExpression z = y.Expression;
我收到一個錯誤
命名空間“System.Linq.Expressions”中不存在型別或命名空間名稱“FieldExpression”。
實際上,在API 檔案中找不到它。
那里有對它的參考,但我研究過的那些導致鏈接斷開或類似:
https://csharpdoc.hotexamples.com/class/System.Linq.Expressions/FieldExpression https://www.fuget.org/packages/System.Linq.Expressions/4.3.0/lib/netstandard1.6/System.Linq .Expressions.dll/System.Linq.Expressions/FieldExpression
有人可以告訴我發生了什么嗎?
uj5u.com熱心網友回復:
它是一個內部型別,派生自MemberExpression. 公共類有一個派生自它的內部類,這并沒有什么特別出人意料的地方。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/455899.html
