>動態對象和擴展方法分辨率問題
這個示例說明了為什麼在動態對像上調用擴展方法通常會導致RuntimeBinderException
>錯誤。 該代碼嘗試在動態對象(First()
>)上使用First()
(可能是Linq的dList
擴展方法)。 故障源於C#編譯器和運行時處理擴展方法的方式。
List<int>
在靜態型代碼中,編譯器會根據名稱空間和
語句。這樣可以防止DLR準確地解決運行時的擴展方法調用。 using
因此,雖然動態鍵入在運行時訪問對象成員時具有靈活性,但它本質上缺少可靠的動態擴展方法分辨率所必需的上下文。 此限制解釋了
以上是為什麼擴充方法對於動態物件會失敗並拋出 RuntimeBinderException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!