(15)C 基礎 方法

2021-08-25 11:21:24 字數 2066 閱讀 9713

文章目錄

方法是一種用於實現可以由物件或類執行的計算或操作的成員。類的方法主要是和類相關聯的動作,它是類的外部介面,對於那些私有字段來說,外部介面實現對它們的操作一般只能通過方法來實現。方法是包含一些列語句的**塊,在c#中每個執行命令都是在方法的上下文中完成的。

方法是c#中將一堆**進行重用的一種機制。方法就是一段**,這段**坑能有輸入的值,可能有返回值。乙個方法就像一口鍋,公尺和水就像引數,把公尺和水放進鍋裡,然後就能做好飯。方法就是需要我們給它一些引數,然後它可能會給我們一些返回值。

修飾符說明

private

私有訪問是允許的最低訪問級別,私有成員只有在宣告它們的類和結構體中才可以訪問

public

公共訪問是允許的最高訪問級別,對訪問公共成員沒有限制

protected

受保護的成員可以在它的類中訪問和可由派生類訪問

internal

只有在同一程式集的檔案中,內部型別或成員才是可訪問的

partial

在同一程式集中定義分部類和結構

new從基類成員隱藏繼承的成員

static

宣告屬於本身而不屬於特定物件的成員

virtual

在派生類中宣告器實現可由重寫成員更改防範的方法或訪問器

override

提供從基類繼承的虛擬成員的新實現

sealed

指定類不能被繼承

abstract

指定某個類只能是其他類的基類

extern

指示在外部實現方法

宣告方法時,需要遵循以下修飾符使用規則:

方法在類或結構中宣告,需要制定訪問級別、返回值、方法名稱及方法引數。方法引數在括號中,並用逗號隔開;括號中沒有內容表示法方法沒有引數。

方法的返回型別指定了由該方法計算和返回的值的型別,如果該方法不返回值,則其返回型別為void

乙個方法的名稱和形參列表定義了該方法的簽名,即乙個方法的簽名由它的名稱及其形參的個數、修飾符和型別組成。返回型別和形參的名稱也不是方法簽名的組成部分。

對於abstract和extern方法,方法主體只包含乙個分好;對於其他方法,方法主體由乙個塊組成,該塊指定了在呼叫方法時要執行的語句,

方法的名稱必須與在同乙個類中宣告的所有其他非方法成員的名稱都不相同。乙個方法的簽名必須與在同乙個類中宣告的其他所有方法的簽名都不相同,並且在同乙個類中宣告的兩個方法的簽名不能只有ref和out不同。

public void method()

1、靜態方法

靜態方法不對特定例項進行操作,在靜態方法中引用this會導致編譯錯誤。允許在不建立類的例項的情況下,直接呼叫

public static int add(int x,int y)

static void main(string args)

執行結果為:

結果為:8

2、非靜態方法

非靜態方法是對類的某個給定的實行進行操作,可以用this來方法該方法。需要建立類的例項,通過例項物件呼叫方法。

public int add(int x,int y)

static void main(string args)

執行結果為:

結果為:10

方法過載是指呼叫同一方法名,但各方法中引數的資料型別、個數、順序不同,只要類中有兩個以上的同名方法,但是使用的引數型別、個數、順序不同,呼叫時編譯器就可以判斷在哪種情況下呼叫哪種方法。

public static int add(int x,int y)

public static int add(int x,double y)

public int add(int x,int y,int z)

static void main(string args)

程式執行結果為:

3+5=8

3+2.5=5.5

3+5+7=15

15 C 基礎之委託(完成)

委託是用來處理其他語言使用函式指標解決問題時的對應辦法。不過不同於c 的函式指標,委託是完全面對物件的 另外c 指標僅指向成員函式,而委託同時封裝了物件例項和方法。委託定義了乙個從system.delegate類派生的類。委託例項封裝乙個呼叫列表,該列表列出乙個或多個方法,其中每個方法均作為乙個可呼...

15 c 物件導向設計

ifndef slump h define slump h 水果 class slump slump slump default 虛函式,如果希望子類可以有自己特定的版本,應使用virtual標識 virtual double price 純虛函式 含有純虛函式的類是抽象類,抽象類負責定義介面,子類...

15 C 筆記 結構體

示例 using system using system.text struct books public void display title console.writeline author author console.writeline subject subject console.wri...