首頁 後端開發 C#.Net教程 C#裡partial關鍵字的作用(轉摘)

C#裡partial關鍵字的作用(轉摘)

Dec 14, 2016 pm 02:57 PM

1. 什麼是局部型?

C# 2.0 引入了局部型態的概念。局部類型允許我們將一個類別、結構或介面分成幾個部分,分別實現在幾個不同的.cs檔案中。

局部類型適用於下列情況:

(1) 類型特別大,不宜放在一個文件中實現。
(2) 一個類型中的一部分程式碼為自動化工具產生的程式碼,不宜與我們自己寫的程式碼混合在一起。
(3) 需要多人合作編寫一個類別。

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

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

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


2. 局部類型的限制

(1) 局部型別只適用於類別、介面、結構,不支援委託和枚舉。
(2) 同一個類型的各個部分必須都有修飾符 partial。
(3) 使用局部類型時,一個類型的各個部分必須位於相同的命名空間中。
(4) 一個類型的各個部分必須同​​時編譯。

3. 局部型別的注意點

(1) 關鍵字partial是一個上下文關鍵字,只有和 class、struct、interface 放在一起時才有關鍵字的意思。因此partial的引入不會影響現有程式碼中名稱為partial的變數。
(2) 局部類型的各個部分一般是分開放在幾個不同的.cs檔案中,但C#編譯器允許我們將他們放在同一檔案中。

4. 局部類型的應用特性

在局部類型上的特性具有「累加」效應。

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

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


相當於

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


註:Attribute2屬性允許在類別上多次使用。

5. 局部類型上的修飾符

(1) 一個類型的各個部分上的存取修飾符必須維持一致性。
(2) 如果一個部分類別使用了abstract修飾符,那麼整個類別都會被視為抽象類別。
(3) 如果一個部分類別使用了 sealed 修飾符,那麼整個類別都將被視為密封類別。
(4) 一個類別的各個部分不能使用相互矛盾的修飾符,例如不能在一個部分上使用abstract,又在另一個部分上使用sealed。
(5)如果一個部分類別使用了 static修飾符,那麼整個類別都會被視為靜態類別。


6. 局部類型的基底類別和介面

(1) 一個類型的各個部分上指定的基類必須一致。某個部分可以不指定基類,但如果指定,則必須相同。
(2) 局部型別上的介面具有「累加」效應。

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


相當於

class Class2: Iinterface1, Iinterface2, Iinterface3 {}

想要更多的相關文章請關注PHP中文網(www.php.cn)!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

深入解析C語言中static關鍵字的作用與用法 深入解析C語言中static關鍵字的作用與用法 Feb 20, 2024 pm 04:30 PM

深入解析C語言中static關鍵字的功能和用法在C語言中,static是一種非常重要的關鍵字,它可以被用於函數、變數和資料類型的定義。使用static關鍵字可以改變物件的連結屬性、作用域和生命週期,以下就來詳細解析一下static關鍵字在C語言中的作用和用法。 static變數與函數:在函數內部使用static關鍵字定義的變數稱為靜態變量,它具有全域生命週

C語言中go是關鍵字嗎?詳細解析 C語言中go是關鍵字嗎?詳細解析 Mar 16, 2024 am 10:30 AM

標題:C語言中go是關鍵字嗎?詳細解析在C語言中,"go"並不是一個關鍵字。 C語言的關鍵字是由C標準規定的,用來表示特定的語法結構或功能,在編譯器中有特殊的意義,不能被用來當作標識符或變數名稱。例如,關鍵字"int"表示整數資料型別,"if"表示條件語句等等。如果我們想要驗證在C語言中"go"是否是關鍵字,可以寫一個簡單的程式來測試。下面是一個範例:#inc

PHP中var關鍵字的作用與範例 PHP中var關鍵字的作用與範例 Jun 28, 2023 pm 08:58 PM

PHP中var關鍵字的作用和範例在PHP中,var關鍵字用來聲明一個變數。在先前的PHP版本中,使用var關鍵字是宣告成員變數的慣用方式,現在不再建議使用。然而,在某些情況下,var關鍵字依然會被使用。 var關鍵字主要用於宣告一個局部變量,並且會自動將該變數標記為局部作用域。這意味著該變數僅在當前的程式碼區塊中可見,並且不能在其他函數或程式碼區塊中存取。使用var

go語言中while是關鍵字嗎 go語言中while是關鍵字嗎 Jun 04, 2021 pm 05:01 PM

在go語言中,while不是關鍵字,可以用for語句加break來實現while循環的效果,例「for {sum++ if sum>10{break}else{...}}」。 go語言有break、default 、func、select、case、defer、go、map、else、goto、for、if、var等25個關鍵字。

c語言中關鍵字有幾個 c語言中關鍵字有幾個 Nov 22, 2022 pm 03:39 PM

C語言的關鍵字共有32個,根據關鍵字的作用,可分其為資料類型關鍵字、控制語句關鍵字、儲存類型關鍵字和其它關鍵字四類。資料型別關鍵字有12個,包括char、double、float、int等;控制語句關鍵字有12個,包括for、break、if、else、do等;儲存類型關鍵字有4個,包括auto、static 、extern等;其它關鍵字有4個,包括const、sizeof等。

PHP中require關鍵字的作用與使用方式詳解 PHP中require關鍵字的作用與使用方式詳解 Jun 28, 2023 pm 11:31 PM

PHP中require關鍵字的作用與使用方法詳解在PHP開發中,require是非常常用的關鍵字。它的作用是將指定的檔案包含進來,以供目前腳本使用。本文將詳細講解require關鍵字的作用與使用方法。一、require關鍵字的作用require關鍵字可以將一個檔案的內容包含到目前腳本中。它通常用於包含一些必要的外部文件,例如庫文件、配置文件等。使用req

go語關鍵字大全 go語關鍵字大全 Apr 07, 2024 pm 02:15 PM

Go語言的關鍵字有:基本關鍵字:const、func、type、var、if、else、for、return資料型別相關關鍵字:bool、string、int、float64、interface{}、map、slice其他關鍵字:break、continue、defer、go、select、range

PHP中extends關鍵字的作用與使用方法詳解 PHP中extends關鍵字的作用與使用方法詳解 Jun 28, 2023 pm 08:04 PM

PHP中extends關鍵字的作用和使用方法詳解在PHP程式設計中,extends是一個非常重要的關鍵字,它用來實現類別的繼承。透過extends關鍵字,我們可以建立一個新的類,這個新類別可以繼承一個或多個已有的類別的屬性和方法。繼承是物件導向程式設計中的重要概念,它使得程式碼的複用和擴展變得更加方便和靈活。本文將詳細介紹extends關鍵字的作用與使用方式。 extends

See all articles