mp3--baidu.

          Google 搜索

          夢(mèng)想不只是做夢(mèng)想一想

          青青子衿, 悠悠我心, 但為君故, 沉吟至今
          posts - 1, comments - 0, trackbacks - 0, articles - 422
             :: 首頁(yè) ::  :: 聯(lián)系 :: 聚合  :: 管理

          1. 什么是局部類(lèi)型?

          C# 2.0 引入了局部類(lèi)型的概念。局部類(lèi)型允許我們將一個(gè)類(lèi)、結(jié)構(gòu)或接口分成幾個(gè)部分,分別實(shí)現(xiàn)在幾個(gè)不同的.cs文件中。

          局部類(lèi)型適用于以下情況:

          (1) 類(lèi)型特別大,不宜放在一個(gè)文件中實(shí)現(xiàn)。
          (2) 一個(gè)類(lèi)型中的一部分代碼為自動(dòng)化工具生成的代碼,不宜與我們自己編寫(xiě)的代碼混合在一起。
          (3) 需要多人合作編寫(xiě)一個(gè)類(lèi)。

          局部類(lèi)型是一個(gè)純語(yǔ)言層的編譯處理,不影響任何執(zhí)行機(jī)制——事實(shí)上C#編譯器在編譯的時(shí)候仍會(huì)將各個(gè)部分的局部類(lèi)型合并成一個(gè)完整的類(lèi)。

             public partial class Program
             {
               static void Main(string[] args)
               {
               }
             }

             partial class Program
             { 
               public void Test()
               { 
               }
             }


          2. 局部類(lèi)型的限制

          (1) 局部類(lèi)型只適用于類(lèi)、接口、結(jié)構(gòu),不支持委托和枚舉。
          (2) 同一個(gè)類(lèi)型的各個(gè)部分必須都有修飾符 partial。
          (3) 使用局部類(lèi)型時(shí),一個(gè)類(lèi)型的各個(gè)部分必須位于相同的命名空間中。
          (4) 一個(gè)類(lèi)型的各個(gè)部分必須被同時(shí)編譯。

          3. 局部類(lèi)型的注意點(diǎn)

          (1) 關(guān)鍵字partial是一個(gè)上下文關(guān)鍵字,只有和 class、struct、interface 放在一起時(shí)才有關(guān)鍵字的含義。因此partial的引入不會(huì)影響現(xiàn)有代碼中名稱(chēng)為partial的變量。
          (2) 局部類(lèi)型的各個(gè)部分一般是分開(kāi)放在幾個(gè)不同的.cs文件中,但C#編譯器允許我們將他們放在同一文件中。

          4. 局部類(lèi)型的應(yīng)用特性

          在局部類(lèi)型上的特性具有“累加”效應(yīng)。

          [Attribute1, Attribute2("Hello")]
          partial class Class1{}

          [Attribute3, Attribute2("Exit")]
          partial class Class1{}


          相當(dāng)于

          [Attribute1, Attribute2("Hello"), Attribute3, Attribute2("Exit")]
          class Class1 {}


          注:Attribute2屬性允許在類(lèi)上多次使用。

          5. 局部類(lèi)型上的修飾符

          (1) 一個(gè)類(lèi)型的各個(gè)部分上的訪問(wèn)修飾符必須維持一致性。
          (2) 如果一個(gè)類(lèi)型有一個(gè)部分使用了abstract修飾符,那么整個(gè)類(lèi)都將被視為抽象類(lèi)。
          (3) 如果一個(gè)類(lèi)型有一個(gè)部分使用了 sealed 修飾符,那么整個(gè)類(lèi)都將被視為密封類(lèi)。
          (4) 一個(gè)類(lèi)的各個(gè)部分不能使用相互矛盾的修飾符,比如不能在一個(gè)部分上使用abstract,又在另一個(gè)部分上使用sealed。

          6. 局部類(lèi)型的基類(lèi)和接口

          (1) 一個(gè)類(lèi)型的各個(gè)部分上指定的基類(lèi)必須一致。某個(gè)部分可以不指定基類(lèi),但如果指定,則必須相同。
          (2) 局部類(lèi)型上的接口具有“累加”效應(yīng)。

          partial class Class2: Iinterface1, Iinterface2 {}
          partial class Class2: Iinterface3 {}
          partial class Class2: Iinterface2 {}


          相當(dāng)于

          class Class2: Iinterface1, Iinterface2, Iinterface3 {}


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 杭州市| 沂水县| 海阳市| 铅山县| 綦江县| 灵武市| 隆德县| 酒泉市| 洪雅县| 新野县| 太原市| 开鲁县| 营山县| 大田县| 搜索| 安龙县| 平和县| 南皮县| 三台县| 陈巴尔虎旗| 永嘉县| 绵竹市| 广灵县| 商水县| 德江县| 大城县| 南京市| 西华县| 西充县| 合作市| 神木县| 丰原市| 石景山区| 望江县| 吉安县| 九台市| 肃北| 尼木县| 犍为县| 高唐县| 阿拉善左旗|