C# 類型、存儲和變量


  如果廣泛地描述C和C++程序的源代碼的特征,可以說C程序是一組函數和數據類型,C++程序是一組函數和類,然而C#程序是一組類型聲明。

  既然C#程序就是一組類型聲明,那么學習C#就是學習如何創建和使用類型。所以需要做的第一件事情就是了解什么是類型。

  可以把類型想象成一個用來創建數據結構的模板,模板本身並不是什么數據結構,但它詳細說明了由該模板構造的對象的特征。

  類型由下面的元素定義:

  . 名稱

  . 用於保存數據成員的數據結構

  . 一些行為及約束條件

 

  實例化類型

    從某個類型模板創建實際的對象,稱之為實例化該類型。

  數據成員和函數成員

    像short、int和long等這樣的類型稱之為簡單類型,這種類型只能存儲一個數據項。

    其他類型可以存儲多個數據項,比如數組(array)類型就可以存儲多個同類型的數據項。這些數據項稱為數組元素。

    然而另外一些類型可以包含許多不同類型的數據項(類)。這些類型中的數據項個體稱為成員,並且與數組中使用數字類引用成員不同,這些成員有獨特的名稱。

    有兩種成員:數據成員和函數成員。

    . 數據成員    保存了與這個類的對象或作為一個整體的類相關的數據。

    . 函數成員 執行代碼。函數成員定義類型的行為

  預定義類型

  C#提供了16種預定義類型。

  如圖

  

需要注意的是:

bool類型表示布爾值並且必須為true或false.

decimal是高精度小數類型,與float和double不同,decimal類型可以准確地表示分數,decimal類型常用語貨幣的計算。

非簡單類型

object::所有其他類型的基類,包括簡單類型

string::0個或多個Unicode字符所組成的序列

dynamic::在使用動態語言編寫的程序集時使用。

用戶定義類型

1:類類型(class);

2: 結構類型(struct)

3:數組類型(array)

4:枚舉類型(enum)

5:委托類型(delegate)

6:接口類型(interface)

一旦聲明了類型就可以創建和使用這種類型的對象,就像他們是預定義類型一樣。

例如:

預定義類型: int  a;

      float b;

用戶自定義類型:

堆和棧

程序運行的時候,他它數據必須存儲在內存中,一個數據項需要多大的內存,存儲在什么地方以及如何存儲都依賴於該數據的類型。

運行中的程序使用兩個內存區域來存儲數據:棧和堆

棧:

棧是一個內存數組,是一個后進先出的數據結構,棧存儲幾種類型的數據:

1:某種類型變量的值

2:程序當前的執行環境

3:傳遞給方法的參數

棧的特征:

.1 數據只能從棧的頂端插入和刪除、

.2 把數據放到棧頂稱為入棧

.3 從棧頂刪除數據稱為出棧

堆是一塊內存區域,在堆里可以分配大塊的內存用於存儲某種類型的數據對象,與棧不同,堆里的內存能夠任意順序存入和刪除。

雖然程序可以在堆里保存數據,但並不能顯示地刪除它們。CLR的自動GC(Carbage collector,垃圾收集器)在判斷出程序的代碼將不會再訪問某種數據項的時候,自動清除無主的堆對象。

如下圖所示

變量

這里不再多介紹了。

 

如有雷同,請聯系我。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM