《C# to IL》第四章 關鍵字和操作符(下)

來源:互聯網
上載者:User

我們建立了一個介面iii,它只有一個名為pqr的函數。然後,類yyy實現了介面iii,但是沒有實現函 數pqr,而是添加了一個名為abc的函數。在進入點函數vijay中,函數pqr會被介面iii調用。

我們 之所以沒有得到任何錯誤,是因為override指令的存在。這個指令通知編譯器重新導向對介面iii的函數pqr 以及對類yyy的函數abc的任何調用。編譯器對override指令是非常嚴格的。可以從這樣的事實中對此進行 考量——如果在類yyy的定義中沒有實現iii,那麼我們就會得到下列異常:

Output

Exception occurred: System.TypeLoadException: Class yyy tried to override method pqr but does not implement or inherit that methods.

at zzz.vijay()

解構函式

a.cs

class zzz
{
public static void Main()
{
}
~zzz()
{
System.Console.WriteLine("hi");
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ret
}
.method family hidebysig virtual instance void Finalize() il managed
{
ldstr      "hi"
call void [mscorlib]System.Console::WriteLine(class System.String)
ldarg.0
call        instance void [mscorlib]System.Object::Finalize()
ret
}
}

No output

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.