您的位置: 旅游網 > 八卦 >> 女友

    局部類型空屬類型靜態類牛

    發布時間:2021-10-26 07:18:37

    局部類型

    局部類型的引入 沒有局部類型的時候(C# 1.0)

    class App

    {

    public void Foo(){...}

    ...

    public void Bar(){...}

    ...

    }

    有了局部類型之后(C# 2.0)

    partial class App

    {

    public void Foo()

    {...}

    ...

    }

    partial class App

    {

    public void Bar()

    {...}

    ...

    }

    局部類型簡介

    局部類型允許我們將一個類型(類、結構或者接口)分成幾個部分,分別實現在幾個不同的.cs文件中。

    局部類型適用于以下情況:

    - 類型特別大,不宜放在一個文件中實現;

    - 一個類型中一部分代碼為自動化工具生成的代碼,不宜與我們自己編寫的代碼混合在一起。

    局部類型是一個純語言層的編譯處理,不影響任何執行機制 - 事實上C#編譯器在編譯的時候仍會將各個部分的局部類型可并成一個完整的類。

    局部類型的一些限制

    局部類型只適用于類、結構、或接口,不支持委托或枚舉。

    同一個類型的各個部分必須都有修飾符partial。

    使用局部類型時,一個類型的各個部分必須位于相同的名稱空間中。

    一個類型的各個部分必須被同時編譯。換言之,C#不支持先編譯一個類型的某些部分,然后再編譯一個類型的某些部分。

    局部類型的幾個特點

    關鍵字partial是一個上下文關鍵字,只有和class、struct、interface放在一起時才有關鍵字的含義。因此partial的引入不會影響現有代碼中名稱為partial的變量。

    局部類型的個數并不必須為2個或2個以上,也可以為1個,雖然這時候已經沒有“局部”的必要。

    局部類型的各個部分一般是分開放在幾個不同的.cs文件中,但C#編譯器允許我們將它們放在同一個.cs文件中。

    在局部類型上應用特性

    局部類型上的特性具有“累加”效應。換言之,如下的代碼:

    [Attr1,Attr2(\"hello\")]

    partial class A{}

    [Attr3,Attr2(\"goodbye\")]

    partial class A{}

    相當于在A類上應用了如下特性:

    [Attr1,Attr2(\"hello\"),Attr3,Attr2(\"goodbye\")]

    partial class A{}

    局部類型上的修飾符

    一個類型的各個部分上的訪問保護修飾符必須維持一致性。

    如果一個類型有一個部分使用了abstract修飾符,那么整個類將被視為抽象類。

    如果一個類型有一個部分使用了sealed修飾符號, 那么整個類將被視為密封類。

    一個類的各個部分不能使用相互矛盾的修飾符,比如不能在一個部分上使用abstract,又在另一個部分上使用sealed。

    局部類型的基類或接口

    一個類型的各個部分上指定的基類必須一致。某些部分可以不指定基類,但如果指定,則必須相同。

    局部類型上的接口具有“累加”效應,換言之,如下的代碼:

    partial class C:IA,IB{...}

    partial class C:IC{...}

    partial class C:IA,IB{...}

    相當于如下代碼:

    class C:IA,IB,IC{...}

    空屬類型

    空屬類型簡介

    空屬類型允許一個值類型具有“空值”意義,從而方便很多場合的運算,如數據庫中的空字段。

    空值類型演示:

    int i = 123;

    就是在進口貨物要出港時起到把關作用的那根欄桿 int? x = i;

    double? y = x;

    int? z = (int?)y;

    空屬類型的幾個注意點

    空屬類型實際上是一個泛型類型

    llable。空屬類型的基礎類型就是llable的類型參數,其中T必須為值類型。

    空屬類型如果值不為空,可以運用同樣的基礎類型所具有的運算,如:+、 -、 *、 /

    空屬類型的HasValue屬性用來判斷類型是否為空,如果不為空,則可以通過Value屬性來獲取它的基礎類型的值。

    靜態類型

    靜態類簡介

    靜態類只用于包含靜態成員的類型,它既不能實例化,也不能被繼承。它相當于一個sealed abstract類。

    static class MyUtility

    {

    public const int data;

    public static void Foo()

    {

    ...

    }

    }

    靜態類的幾個注意點

    靜態類不能有實例構造器。

    靜態類不能有任何實例成員。

    靜態類不能使用abstract或sealed修飾符。

    靜態類默認繼承自ject根類,不能顯式指定任何其他基類。

    靜態類不能指定任何接口實現。

    靜態類的成員不能有protected或protected internal訪問保護修飾符。

    總結

    局部類型是一個純語言層的編譯處理,不影響任何執行機制 - 事實上,C#編譯器在編譯的時候仍會將各個部分的局部類型合并成一個完整的類。

    空屬類型允許一個值類型具有“空值”意義,從而方便很多場合的運算,如數據庫空字段,空屬類型實際上是一個泛型類llable。

    靜態類只用語包含景泰成員的類型,他既不能實例化,也不能被繼承。它相當于一個sealed abstract類。

    查看本文來源

    太原哪家牛皮癬醫院正規
    重慶早泄治療費用
    孩子不吃飯怎么辦
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 国产精品综合视频| 日韩不卡手机视频在线观看| 囯产精品一品二区三区| 2019中文字幕在线| 怡红院日本一道日本久久| 久草网在线视频| 毛片大全免费看| 口工里番h全彩动态图| 欧美成人性动漫在线观看| 夜夜爽一区二区三区精品| 中文字幕亚洲精品资源网| 最近中文字幕mv手机免费高清| 交性大片欧美网| 美女隐私尿口视频网站| 国产日产卡一卡二乱码| 99re热这里只有精品视频| 成人精品一区二区三区中文字幕| 亚洲V欧美V国产V在线观看| 波多野结衣系列痴女| 另类图片亚洲校园小说区| 高清性色生活片2| 国产精品免费无遮挡无码永久视频| tube欧美69xxxx| 拍拍拍无挡无遮10000| 九九热中文字幕| 欧美日韩亚洲电影| 免费一看一级毛片人| 翁熄系列回乡下| 国产裸拍裸体视频在线观看| 亚洲午夜国产精品无码| 男女啪啪进出阳道猛进| 国产一在线精品一区在线观看| 中文字幕色婷婷在线精品中| 夜夜爽一区二区三区精品| 两根大肉大捧一进一出好爽视频| 最近中文字幕mv手机免费高清| 亚洲欧美日韩国产精品久久| 福利视频第一区| 嗯啊公交车上被群j| 高潮抽搐潮喷毛片在线播放| 国产精品亚洲一区在线播放|