[第一天]C#學習筆記

來源:互聯網
上載者:User

標籤:浮點數   小數   儲存   特定   pac   高精度   記憶體   它的   儲存位置   

一、類型

1、C#程式是一組型別宣告

2、通過執行個體化類型而建立的對象被稱為類型的對象或類型的執行個體

3、C#提供16種預定義類型,包括13種簡單類型3種非簡單類型

   ① 13種簡單類型中包括11種數實值型別(包括整數類型和浮點類型)和2種非數實值型別
         

                              表一  11種數實值型別

類型名稱

注釋

 整數類型

8種

sbyte

8位有符號整數

byte

8位不帶正負號的整數

short

16位有符號整數

ushort

16位不帶正負號的整數

int

32位有符號整數

uint

32位不帶正負號的整數

long

64位有符號整數

ulong

64位不帶正負號的整數

   

浮點類型

3種

float

單精確度浮點數

double

雙精確度浮點數

decimal

高精度小數類型,有效數字精度位28位。

                                                                                                                                                                                                                                                               

                            表二  2種非數實值型別

類型名稱

注釋

char

Unicode字元類型

bool

布爾類型

 

 

  ② 3種非簡單類型

類型名稱

注釋

object

所有其他類型的基類

string

0個或多個Unicode字元所組成的序列

dynamic

在使用動態語言編寫的程式集時使用

 

  ③ C#有6種類型可以由使用者自己建立,分別是 類類型(class)結構類型(struct)數群組類型(array)枚舉類型(enum),委託類型(delegate)介面類型(interface)

 

 

二、棧和堆

1、棧

  ① 是一個記憶體數組,是一個後進先出(LIFO)的資料結構。

  ② 棧儲存幾種類型的資料:某些類型變數的值程式當前的執行環境傳遞給方法的參數

  ③ 資料只能從棧的頂端插入和刪除。

  ④ 把資料放到棧頂成為入棧(push)。

  ⑤ 從棧頂刪除資料稱為出棧(pop)。

 

2、堆

  ① 是一塊記憶體地區,在堆裡可以分配大塊的記憶體用於儲存某類型的資料對象

  ② 堆與棧不同的是,堆裡的記憶體能夠以任意順序存入和刪除

 

三、實值型別與參考型別

類型除了決定了儲存資料需要的記憶體大小以及組成該類型的資料成員,還決定了類型的對象在記憶體中的儲存位置,於是類型又被分為兩種,實值型別參考型別。

 

1、實值型別:資料存放在棧裡

2、參考型別:引用存放在棧裡資料存放在堆裡

3、當資料是另一個對象的成員,儲存方式會有些不同。

  ① 參考型別的對象的資料始終存放在堆裡。

  ② 實值型別的對象的資料參考型別的引用可以存放在棧裡,也可以存放在堆裡,這依賴於實際環境。

     如參考型別的執行個體S,它有兩個成員,實值型別成員A,參考型別成員B。

      儘管成員A是實值型別,但它也是參考型別的執行個體S的資料的一部分,所以存放在堆裡。

      而成員B是參考型別,它的資料部分會始終存放在堆裡,它的引用部分因為也作為S的資料的一部分,所以也會被存放在堆裡

 

 

四、變數

1、分類

  ① 本地變數:在方法的範圍儲存臨時資料,不是類型的成員

  ② 欄位:儲存和類型或類型執行個體相關的資料,是類型的成員

  ③ 參數:用於從一個方法到另一個方法傳遞資料的臨時變數,不是類型的成員

  ④ 數組元素:通常是同質資料項構成的有序集合的一個成員,可以為本地變數也可以為類型的成員

2、無初始化語句的本地變數有一個未定義的值,在賦值之前不能使用試圖使用未定義的本地變數會導致編譯器產生一條錯誤資訊

3、自動初始化:一些類型的變數如果在聲明時沒有初始化語句,那麼會被自動設為預設值,而一些則不能。

 

                                 表三  變數

變數類型

儲存位置

是否自動初始化

本地變數

棧 或 棧和堆

類欄位

結構欄位

棧或堆

參數

數群組類型

 

4、多變數聲明

  ① 多變數聲明中的變數必須類型相同

  ②變數名間必須用逗號分隔可以在變數名後包含初始化語句

 

5、靜態類型和dynamic關鍵字

① 靜態類型:變數的類型在編譯的時候已經確定並且不能在運行時修改。

② dynamic關鍵字:代表一個特定的、實際的C#類型,它知道如何在運行時解析自身。在編譯時間,編譯器不會對dynamic類型的變數進行類型檢查

                         而是,它會將與該變數以及與該變數的操作相關的所有資訊打包。在運行時,這些資訊將會被檢查,以確保它與變數所代表的實際類型保持一致

                         否則,將在運行時拋出異常。

6、可空類型

  在某些情況下,特別是使用資料庫的時候,你希望表示變數目前未儲存有效值。對於參考型別可以把變數設定為null。但定義實值型別的變數時,不管它的內容是否時有效,

  其記憶體都會進行分配。對於這種情況,可以使用一個布爾指標來和變數關聯,如果值有效,則設定為true,否則就設定為false,而用可空類型也可以來解決,可空類型允許建立可以標記為有效或無效的實值型別

  這樣就可以在使用它之前確定值的有效與否。

[第一天]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.