六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

SUNWEN圖文說明教程之----C#進階(6)

[摘要]大家好,我是武漢華師的SUNWEN.現在是五月二號晚上19:27,由于閑著沒事干,所有又寫起來了.昨天照了十幾張相,待會可以去取了,不知照片中的我是不是很帥,呵呵!現在我耳邊正聽著2000歐洲杯的曲子,所以比較激動.唉,身為我們院2000級足球隊長的我,已經很久沒有踢球了!現在我要說的是C#中的版...

大家好,我是武漢華師的SUNWEN.現在是五月二號晚上19:27,由于閑著沒事干,所有又寫起來了.昨天照了十幾張相,待會可以去取了,不知照片中的我是不是很帥,呵呵!現在我耳邊正聽著2000歐洲杯的曲子,所以比較激動.唉,身為我們院2000級足球隊長的我,已經很久沒有踢球了!

現在我要說的是C#中的版本處理.其實這是任何一個軟件必須要考慮的問題.每個軟件都不只一個版本(除了我寫的以外),因此版本處理顯得非常地重要.JAVA很好地處理了這個問題,而我個人認為C#借鑒了JAVA的處理方法,所以,也做得很好.

在C#中,如果你在聲明一個方法的時候用了virtual這個關鍵字,那么,在派生類中,你就可以使用override或者new關鍵字來棄用它或是忽略它.如果你在父類中用了virtual這個關鍵字,而在其派生類中又沒有用override或new關鍵字,而直接引用一個同名方法的話,編譯器將會報錯,并將以new方式,即忽略派生類中的方法的方式來運行.下面的例子可以幫助你來理解:


000: // Versioning\versioning.cs
001: public class MyBase
002: {
003: public virtual string Meth1()
004: {
005: return "MyBase-Meth1";
006: }
007: public virtual string Meth2()
008: {
009: return "MyBase-Meth2";
010: }
011: public virtual string Meth3()
012: {
013: return "MyBase-Meth3";
014: }
015: }
016:
017: class MyDerived : MyBase
018: {
019: public override string Meth1()
020: {
021: return "MyDerived-Meth1";
022: }
023: public new string Meth2()
024: {
025: return "MyDerived-Meth2";
026: }
027: public string Meth3() // 系統在這里將會有一個警告,并且將會隱藏方法Meth3()
028:
029:
030: {
031: return "MyDerived-Meth3";
032: }
033:
034: public static void Main()
035: {
036: MyDerived mD = new MyDerived();
037: MyBase mB = (MyBase) mD;
038:
039: System.Console.WriteLine(mB.Meth1());
040: System.Console.WriteLine(mB.Meth2());
041: System.Console.WriteLine(mB.Meth3());
042: }
043: }

輸出:

MyDerived-Meth1
MyBase-Meth2
MyBase-Meth3
可以很明顯地看出來,后兩個new關鍵字的輸出是父類中的方法的輸出,所以可以看出,new這個關鍵字的作用是如果在以前的版本中有這個方法,就沿用以前的方法,而不用我現在方法內容.而virtual的方法的作用正好相反,它的作用是如果在父類中有這樣一個方法,則用我現在寫的方法內容,讓以前的滾蛋!不過,這里用new好象不太好,讓人誤解(糟了,蓋癡又要打我了!&*%$#@).

如果你把第037行去掉,把039-041中的mB全部改為mD,輸出又變為:

MyDerived-Meth1
MyDerived-Meth2
MyDerived-Meth3

這又說明了什么呢,說明了派生類的對象只有在被父類重塑的時候,override和new關鍵字才會生效.呵呵,這樣說的確有點難以理解,大家只有自己動手,才能搞清楚這其中的機關,所謂"實踐是檢驗C#的唯一標準",哈哈!

在C#中,你可以自由地為在派生類中為加入一個方法,或者覆蓋父類的方法,如下所示,非常地簡單:

class Base {}
class Derived: Base
{
public void F() {}
}
和:

class Base
{
public void F() {}
}
class Derived: Base
{
public void F() {}
}
好了,這一節又完了,音樂還沒完,但是我真的要休息了,明天見!

 




主站蜘蛛池模板: 日韩操 | 欧美在线观看黄色 | 欧美一区二区激情视频 | 欧美一欧美一区二三区性 | 青草青青产国视频在线 | 伊人免费在线观看高清版 | 色综网| 日本高清视频在线三级 | 宅男午夜视频在线观看 | 亚洲aaa| 我想看一级播放片一级的 | 亚洲欧美v视色一区二区 | 伊人青| 一二三四免费高清观看在线观看 | 日本男女动态图 | 在线国产二区 | 羞羞爱爱 | 色国产精品一区在线观看 | 日韩性网站 | 我想看一级黄色毛片 | 亚洲日本欧美产综合在线 | 日韩欧美三区 | 欧美视频三级 | 日韩免费在线视频 | 无人码一区二区三区视频 | 色噜噜网站 | 天天天天做夜夜夜做 | 天天躁日日躁狠狠躁视频下载播二 | 性xxx免费视频 | 青草青草视频 | 伊人直| 伊人久久大香线蕉综合热线 | 日韩欧美亚洲乱码中文字幕 | 欧美一级免费片 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看播放 | 亚洲va欧美ⅴa国产va影院 | 青草视频在线播放 | 首页 亚洲 欧美 制服 丝腿 | 欧美一级片观看 | 中文在线天堂网 | 亚洲无砖砖区免费 |