日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
簡介C#虛擬方法

當類中的方法聲明前加上了virtual修飾符,我們稱之為C#虛擬方法 ,反之為非虛。使用了virtual修飾符后,不允許再有static、abstract或override修飾符。對于非虛的方法,無論被其所在類的實例調用,還是被這個類的派生類的實例調用,方法的執(zhí)行方式不變。而對于虛方法,它的執(zhí)行方式可以被派生類改變,這種改變是通過方法的重載來實現(xiàn)的。

十多年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站設計,個人網(wǎng)站制作服務,為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設計流程、步驟,成功服務上千家企業(yè)。為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制高端網(wǎng)站建設服務,專注于企業(yè)網(wǎng)站設計,高端網(wǎng)頁制作,對成都雨棚定制等多個領域,擁有多年的網(wǎng)站制作經驗。

下面的例子說明了C#虛擬方法與非虛方法的區(qū)別。

例子:

 
 
 
  1. using System;  
  2. class A  
  3. {  
  4.    public void F(){Console.WriteLine("A.F");}  
  5.    public virtual void G(){Console.WriteLine("A.G");}  
  6. }  
  7. class B:A  
  8. {  
  9.    new public void F(){Console.WriteLine("B.F");}  
  10.    public override void G(){Console.WriteLine("B.G");}  
  11. }  
  12. class Test  
  13. {  
  14.    static void Main()  
  15.    {  
  16.       B b=new B();  
  17.       A a=b;  
  18.       a.F();  
  19.       b.F();  
  20.       a.G();  
  21.       b.G();  
  22.    }  

例子中,A類提供了兩個方法:非虛的F和C#虛擬方法 G.類B則提供了一個新的非虛的方法F,從而覆蓋了繼承的F;類B同時還重載了繼承的方法G.那么輸出應該是:

A.F

B.F

B.G

B.G

注意到本例中,方法a.G()實際調用了B.G,而不是A.G.這是因為編譯時值為A,但運行時值為B,所以B完成了對方法的實際調用。


分享題目:簡介C#虛擬方法
文章地址:http://www.5511xx.com/article/dhijsod.html