![](/img/trans.png)
[英]Is it Possible to use Mono AOT Compiled (Native)c# Executable and C# Dll(CIL) which has unimplemented Mono Methods
[英]C# Compiled to CIL
我理解以下C#代碼:
var evens = from n in nums where n % 2 == 0 select n;
編譯為:
var evens = nums.Where(n => n % 2 == 0);
但它是什么意思,它編譯到那? 我的印象是C#代碼直接編譯成CIL?
我覺得你誤會了什么。 查詢表達式:
var evens = from n in nums where n % 2 == 0 select n;
不編譯為:
var evens = nums.Where(n => n % 2 == 0);
相反,這兩行代碼直接編譯為CIL。 恰好它們編譯為(有效)相同的CIL。 編譯器可以在分析查詢代碼的過程中將查詢轉換為中間形式,但最終結果當然是CIL。
這是一個C#/ LINQ表達式:
var evens = from n in nums where n % 2 == 0 select n;
這是一個C#lambda表達式:
var evens = nums.Where(n => % 2 == 0);
他們都是 C#,他們都被編譯成CIL。
你可以在這里閱讀更多關於lambdas的信息:
您可以在此處閱讀有關LINQ的更多信息:
這兩個表達式是等價的。
無法走“編譯”成其他。 誠實 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.