C C 補習 類與方法

2022-02-07 21:04:42 字數 2207 閱讀 3613

補習完一些基礎的c#之後,今天開始補習c#的重要組成部分類與方法相關知識。

1、方法相關

2、類相關

一、方法相關

方法一般是由返回型別、方法名和引數組成,隨著.net版本的不斷提公升,方法也衍生出了許多特性(不知道這邊稱之為特性算不算對),這些特性是個雙刃劍,有好處也有壞處,所以只有開發者對其進行了解才能很好的運用,下面列舉了幾個我認為需要注意的地方

1、引數陣列,在c#中,允許在方法引數中新增params關鍵字來表示引數數量是可變的,如下**:

public void test(string name,params string args)

但是有幾點需要注意:

1)如果有多個引數,引數陣列則必須是在方法引數的最後乙個

2)對於方法引數必須要有1個的情況下,建議將其分離出來,不要合併到引數陣列中,否則很容易引發錯誤,如下**:

public void test(string name,params string args)

如果上面的**中name不分離出來而放在陣列引數的中,那麼在呼叫的時候很可能就會忘記傳入,而編譯器也不會報錯。

2、可選引數及命名引數,在.net4中,新增了乙個可選引數的特性,如下**:

public void test(string name,int age=16)

命名引數:

test("測試",age:15);
這種可選引數很好解決了以前需要至少2個過載才能完成方法過載,而命名引數則解決了在傳參的過程中無需再獨立定義乙個變數來儲存並傳值,但是有點需要注意:

1)可選引數和命名引數這2種技術混合使用的時候會出現**閱讀的困難,因為你無法一眼無法知道這個呼叫的到底是哪個方法。

2)如果有乙個可選引數方法和乙個無可選引數的方法簽名都一樣,編譯器會呼叫屋可選引數的方法。

3、分部方法,在.net2.0推出了乙個新的關鍵字partial,主要用於類與方法,增加了這個關鍵字後可以將乙個類分割到多個**檔案中,這樣的好處就在於可以分隔出自動生成的**與人工**(當然還有其他),如:foo.designer.cs和foo.cs。

而分部方法的好處就在於,在乙個分部類中可以只有簽名無需事先,而在另外乙個分布類中實現,如果沒有實現則不會有任何問題,在il裡也不會有相應的簽名資訊,增加了靈活性。

而是如果要使用分部方法需要注意以下3點:

1)分部方法的返回值必須是void。

2)分部方法的引數中不能有out引數,但可以使用ref。

3)分部方法必須包含在分部類中。

二、類相關

1、巢狀類作用域,在c#中允許出現巢狀類,如下**:

public class a

}

什麼時候需要使用巢狀類呢?,就是如果a類中需要有某些**需要以物件導向的形式展現,而又不想被除呼叫類以外的類呼叫到就可以使用巢狀類,需要注意的是巢狀類最好不要使用public訪問符,因為這樣無任何意義

而這邊要談的不是巢狀類的好壞,而是要注意使用了巢狀類後的作用域問題:

1)巢狀類b可以訪問a類所有成員,而a類無法訪問b類的私有成員,只能用過b類的例項來訪問公開的成員

2)巢狀類b中的this指向的是b類的例項。

3)巢狀類b如果想訪問a類例項的話則只能通過傳遞引數來實現。

2、using引用作用域,這個放在類中來進行記錄不知道合適不合適,但是還是記錄下來吧,主要就是我們常規的using引入都是在**的頂部,命名空間的外部引入命名空間,其作用於當前類檔案,而如果在namespace中使用using引入則using引入的作用域將僅限於這個命名空間下,如下**:

using system;

namespace a

}public class soo

如上**,在頂部引入了system,這個system將作用於整個類檔案,而在a命名空間下引入了system.text,其僅僅作用於a命名空間。

C C 補習 控制流語句相關

繼續補習,這篇文章主要補習下控制流程的相關語句及關鍵字,在c 中用於控制流程的語句有 if while dowhile switch for foreach goto break continue,大多數都是我們日常開發所使用的,而這篇主要還是補習那些遺漏的知識。1 迴圈語句 for foreach...

C C 中類常成員方法和類靜態方法

例如 class ctest private int pri 使用 表明該方法不能對類中資料成員進行修改 用處 如例子中給出,一般只用來return乙個類中私有變數,為了其他類中例項化該類物件,從而呼叫常方法來間接訪問私有變數。因為其他類中不能訪問該類私有變數。注意 const需要放在函式名後面,不...

C C 抽象類及其方法

一 解釋1 在c 中使用關鍵字 abstract 來定義抽象類和抽象方法。不能初始化的類被叫做抽象類,它們只提供部分實現,但是另乙個類可以繼承它並且能建立它們 的例項。乙個包含乙個或多個純虛函式的類叫抽象類,抽象類不能被例項化,進一步 乙個抽象類只能通過介面和作為其它類的基類使用.c program...