1
爲什麼編譯器讓這個表達式編譯,而運行時異常是不可避免的?C#動態綁定和void方法調用
我不認爲Dynamic Binding
應該無效方法
static void Main(string[] args)
{
var res = Test((dynamic)"test"); // throws RuntimeBinderException exception at runtime
}
static void Test(dynamic args)
{
}
工作,如果C#規範是指上述表達式作爲動態綁定表達式爲什麼不下面的方法編譯?
static dynamic DynamicMethod()
{
}
基本上,當你拋出'dynamic'到池中時,任何一種編譯時檢查都會退出窗口。這就是整個觀點。 – Servy
那麼爲什麼第二個方法會引發編譯時異常? –
在第二種情況下,你知道它沒有返回任何東西,在運行時沒有任何東西可以改變,以使它返回一些東西。在第一種情況下,可能有一些它不知道的方法(但是)可以讓它編譯和運行。 – Servy