C#學習筆記 ----對象和類型

來源:互聯網
上載者:User

標籤:style   blog   color   使用   io   strong   檔案   for   資料   

類和結構

類是儲存在堆(heap)上的參考型別,而結構是儲存在棧(stack)上的實值型別。

結構 不支援繼承

 

資料成員 是包含類的資料--欄位、常量和事件的成員。

函數成員提供了操作類中資料的某些功能,包括方法、屬性、建構函式和終結器(finalizer)、運算子以及索引器

 

ref參數 迫使值參數通過引用傳遞給方法

 

在方法的輸入參數前面加上out首碼時,傳遞給該方法的變數可以不初始化。

 

具名引數允許按照任意順序傳遞

 

參數也可以是可選的。必須為選擇性參數提供預設值。

 

方法重載:

.倆個方法不能僅在傳回型別上有區別

.倆個方法不能僅根據參數是聲明為ref還是out來區分

 

屬性

在屬性定義中省略set訪問器,就可以建立唯讀屬性

在屬性定義中省略get訪問器,就可以建立唯寫屬性

C#允許給屬性的set和get訪問器設定不同的存取修飾詞,屬性可以有公有的get訪問器和私人或受保護的set訪問器

如果屬性的set和get訪問器中沒有任何邏輯,就可以使用自動實作屬性。

 

建構函式

注意,如果提供了帶參數的建構函式,編譯器就不會自動提供預設的建構函式。

 

可以把建構函式定義為private 或protected,這樣不相關的類也不能訪問,

這在下面倆種情況下是有用的:

.類僅用作某些靜態成員或屬性的容器,因此永遠不會執行個體化它

.希望類僅通過調用某個靜態成員函數來執行個體化(這就是所謂對象執行個體化的類Factory 方法)

 

靜態建構函式,類有一些靜態欄位或屬性,需要在第一次使用之前,從外部源中初始化這些靜態欄位和屬性

 

C#建構函式初始化器可以包含對同一個類的另一個建構函式的調用,也可以包含對直接基類的建構函式的調用(使用相同的文法,應使用base關鍵字代替this)

 

唯讀欄位

readonly 

可以在建構函式中給唯讀欄位賦值,但不能在其他地方賦值

public class Document{    public readonly DateTime CreationData    public Document()    {        // Read in creation date from file.Assume result is 1 Jan 2002        // but in general this can be different for different instances        // of the class        CreationDate = new DateTime(2002,1,1);    }}            

 

匿名函數

var與new 關鍵字一起使用,可以建立匿名型別

如下:

var caption = new {FirstName = "James", MiddleName = "T",LastName = "Kirk"};

 

結構

正面影響:為結構分配記憶體時,速度非常快,因為它們將內聯或者儲存在棧中。在結構超出了範圍被刪除時,速度也很快。

負面影響:只要把結構作為參數來傳遞或者把一個結構賦予另一個結構,結構的所有內容就被複製,而對於類則只複製引用。

 

結構的繼承鏈:每個結構派生自System.ValueType類,System.ValueType類又派生自System.Object。

 

預設建構函式把數值欄位都初始化為0,把參考型別欄位初始化為null,且總是隱式地給出。

 

部分類

partial關鍵字允許把類、結構或介面放在多個檔案中

partial關鍵字的用法是:把partial放在class、struct或interface關鍵字前面

 

擴充方法,它允許改變一個類,但不需要該類的原始碼。

C#學習筆記 ----對象和類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.