C#快速入門教程(7)——資料型別概述

曹化宇發表於2018-09-14

前面的內容,我們瞭解了物件導向程式設計的基本概念,以及在C#中如何實現;同時,也提到過在C#中的資料型別分為引用型別和值型別,本課,我們對C#中的常用型別做一些疏理。

首先來看引用型別。最常用的引用型別就是前面內容中介紹的類(class)型別;而在C#中,還有一個比較常用的引用型別就是委託(delegate)型別,後續會有詳細討論。引用型別的特點就是,我們定義的物件(例項)實際是一個指向物件資料塊的“地址”;在傳遞過程中,只需要傳遞這個“地址”就可以了,並不需要複製大量的物件資料,這對於資料傳遞效率來講是有利的。

C#中的常用值型別包括結構(struct)和列舉(enum)。值型別的變數直接指向資料,在傳遞時預設會複製其資料內容,前面的課程中已看到相關的示例。

引用型別和值型別是C#和.NET Framework平臺中基本的原始型別,在程式設計處理實際問題時,還會有一些基本的型別可以使用,這些型別都定義在System名稱空間,而且很多型別在C#中都有相應的別名,下面分別介紹。

整數型別,用於處理沒有小數部分的資料,包括有符號整數和符號整數。有符號整數用於處理正整數、零和負整數,無符號整數用於處理零和正整數。

具體的有符號整數型別包括:

  • sbyte,處理8位有符號整數,對應System.SByte結構型別。請注意,8位是一個位元組,所以,sbyte和byte型別也用於處理位元組資料。
  • short,處理16位有符號整數,對應System.Int16結構型別。
  • int,處理32位有符號整數,對應System.Int32結構型別。
  • long,處理64位有符號整數,對應System.Int64結構型別。

相應的無符號整數型別包括:

  • byte,處理8位無符號整數,對應System.Byte結構型別。
  • ushort,處理16位無符號整數,對應System.UInt16結構型別。
  • uint,處理32位無符號整數,對應System.UInt32結構型別。
  • ulong,處理64位無符號整數,對應System.UInt64結構型別。

處理有小數部分的資料型別包括:

  • float,單精度浮點型,對應System.Single結構型別。
  • double,雙精度浮點型,對應System.Double結構型別。
  • decimal,十進位制型別,對應System.Decimal結構型別,這是基本型別中處理數值範圍最大的。

此外,在程式碼中的數字字面量,預設的整數是int型別,如直接用0、1等資料,它們的型別就是int。預設的浮點數是double型別,如0.0、0.123等。在書寫數字時,如果需要指定其型別,可以使用一些字母后綴,如:

  • L或l,數字為long型別,如10L。
  • UL或ul,數字為ulong型別,如123UL。
  • F或f,數字為float型別,如99f、0.123F。
  • D或d,數字為double型別,如1D。
  • M或m,數字為decimal型別,如1M、1.2M。

布林型別,又稱為邏輯型別,在C#中使用bool關鍵字定義,對應了System.Boolean結構型別。其值只包括True和False,在C#中分別是true值和false值。

char型別用於處理單個字元,對應System.Char結構型別;字元字面量使用一對單引號定義,如'A'。

string型別用於定義字串,即文字內容,對應於System.String類型別;字串字面量使用一對雙引號定義,如"ABC123"。

此外,在處理日期和時間資訊時可以使用DateTime和TimeSpan等結構型別,它們都定義在System名稱空間。

以上是C#和.NET Framework中最基本的資料型別,在程式中會很廣泛地應用;接下來的幾課,我們會討論整數、浮點數、Decimal、布林、字元、字串等資料型別的應用,以及運算等相關操作。

最後,給出基本的C#和.NET Framework資料型別的對照表,其中包括資料名稱和取值範圍(沒錯,在計算機中的資料處理範圍是有限的!!!)

enter image description here

CHY軟體小屋原創作品!

相關文章