小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C#的一些語(yǔ)言特性

 goldbomb 2007-04-07
 1. new和override區(qū)別
    override在子類中重寫基類的方法;new在子類中為基類同名(virtual)方法添加一個(gè)新的版本,會(huì)保留基類的同名(virtual)方法。
    下面的例子詳細(xì)的展示它們的區(qū)別:
public class BaseClass
{
    
public BaseClass()
    {
    }

    
public virtual void Test()
    {
        Console.WriteLine(
"Test() in BaseClass");
    }
}

public class DerivedClass1 : BaseClass
{
    
public override void Test()
    {
        Console.WriteLine(
"Test() in DerivedClass1");
        
base.Test();
    }
}

public class DerivedClass2 : BaseClass
{
    
public new void Test()
    {
        Console.WriteLine(
"Test() in DerivedClass2");
        
base.Test();
    }
}

class Program
{
    
static void Main(string[] args)
    {
        DerivedClass1 class1 
= new DerivedClass1();
        class1.Test();
        Console.WriteLine(
"-----------------------");
        DerivedClass2 class2 
= new DerivedClass2();
        class2.Test();
        Console.WriteLine(
"-----------------------");
        BaseClass baseclass;
        baseclass 
= class1 as BaseClass;
        baseclass.Test();
        Console.WriteLine(
"-----------------------");
        baseclass 
= class2 as BaseClass;
        baseclass.Test();
        Console.WriteLine(
"-----------------------");

        Console.ReadLine();
    }
}
    輸出如下,可以看到使用new時(shí),如果將實(shí)例轉(zhuǎn)換為基類類型,調(diào)用的方法為基類的方法:
Test() in DerivedClass1
Test() in BaseClass
-----------------------
Test() in DerivedClass2
Test() in BaseClass
-----------------------
Test() in DerivedClass1
Test() in BaseClass
-----------------------
Test() in BaseClass
-----------------------
    如果基類的同名方法不給出new和override修飾符,.Net默認(rèn)采用new的方式,編譯時(shí)將產(chǎn)生一條警告信息。

    2. 關(guān)于static的構(gòu)造函數(shù)
    static的構(gòu)造函數(shù)將在第一次使用該類的地方被調(diào)用。例如第一次調(diào)用該類的靜態(tài)方法、屬性,或者第一次實(shí)例化該類的一個(gè)對(duì)象等。

    3. abstract, virtual
    abstract的類不能實(shí)例化,只能用于子類繼承。
    abstract的方法隱式的就是一個(gè)virtual方法;abstract的方法子類必須實(shí)現(xiàn);abstract方法只能有聲明,不能包含實(shí)現(xiàn)。
    virtual方法提供給子類重寫;可以包含實(shí)現(xiàn)。

    4. as和強(qiáng)制類型轉(zhuǎn)換
    強(qiáng)制類型轉(zhuǎn)換:MyClass myclass=(MyClass)obj; 使用as:MyClass myclass=obj as MyClass;
    區(qū)別在于,如果obj不能被轉(zhuǎn)換成MyClass類型,強(qiáng)制類型轉(zhuǎn)換會(huì)拋出異常,而使用as時(shí)不會(huì)有異常,只是轉(zhuǎn)換結(jié)果(myclass變量)的值為null。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多