免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C#的一些語言特性
userphoto

2007.04.07

關注
 1. new和override區(qū)別
    override在子類中重寫基類的方法;new在子類中為基類同名(virtual)方法添加一個新的版本,會保留基類的同名(virtual)方法。
    下面的例子詳細的展示它們的區(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時,如果將實例轉(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默認采用new的方式,編譯時將產(chǎn)生一條警告信息。

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

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

    4. as和強制類型轉(zhuǎn)換
    強制類型轉(zhuǎn)換:MyClass myclass=(MyClass)obj; 使用as:MyClass myclass=obj as MyClass;
    區(qū)別在于,如果obj不能被轉(zhuǎn)換成MyClass類型,強制類型轉(zhuǎn)換會拋出異常,而使用as時不會有異常,只是轉(zhuǎn)換結(jié)果(myclass變量)的值為null。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#中的繼承、重寫、覆蓋、多態(tài)、virtual override 以及其他-程序開發(fā)-紅黑聯(lián)盟
接口與多態(tài)性
C#學習第八天
C# 抽象類(abstract)
轉(zhuǎn):C#中base關鍵字的幾種用法
override 和overload 的區(qū)別?
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服