瞭解下C# 資料型別
導讀 | C# 是一個現代的、通用的、物件導向的程式語言,它是由微軟(Microsoft)開發的,由 Ecma 和 ISO 核准認可的。 |
在 C# 中,變數分為以下幾種型別:
- 值型別(Value types)
- 引用型別(Reference types)
- 指標型別(Pointer types)
值型別變數可以直接分配給一個值。它們是從類 System.ValueType 中派生的。
值型別直接包含資料。比如 int、char、float,它們分別儲存數字、字元、浮點數。當您宣告一個 int 型別時,系統分配記憶體來儲存值。
下表列出了 C# 2010 中可用的值型別:
型別 | 描述 | 範圍 | 預設值 |
---|---|---|---|
bool | 布林值 | True 或 False | False |
byte | 8 位無符號整數 | 0 到 255 | 0 |
char | 16 位 Unicode 字元 | U +0000 到 U +ffff | '\0' |
decimal | 128 位精確的十進位制值,28-29 有效位數 | (-7.9 x 10
28 到 7.9 x 10
28)
/ 10 0 到 28 |
0.0M |
double | 64 位雙精度浮點型 | (+/-)5.0 x 10 -324 到 (+/-)1.7 x 10 308 | 0.0D |
float | 32 位單精度浮點型 | -3.4 x 10 38 到 + 3.4 x 10 38 | 0.0F |
int | 32 位有符號整數型別 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64 位有符號整數型別 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
sbyte | 8 位有符號整數型別 | -128 到 127 | 0 |
short | 16 位有符號整數型別 | -32,768 到 32,767 | 0 |
uint | 32 位無符號整數型別 | 0 到 4,294,967,295 | 0 |
ulong | 64 位無符號整數型別 | 0 到 18,446,744,073,709,551,615 | 0 |
ushort | 16 位無符號整數型別 | 0 到 65,535 | 0 |
如需得到一個型別或一個變數在特定平臺上的準確尺寸,可以使用 sizeof 方法。表示式 sizeof(type) 產生以位元組為單位儲存物件或型別的儲存尺寸。下面舉例獲取任何機器上 int 型別的儲存尺寸:
例項
using System; namespace DataTypeApplication { class Program { static void Main(string[] args) { Console.WriteLine("Size of int: {0}", sizeof(int)); Console.ReadLine(); } } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
Size of int: 4
引用型別不包含儲存在變數中的實際資料,但它們包含對變數的引用。
換句話說,它們指的是一個記憶體位置。使用多個變數時,引用型別可以指向一個記憶體位置。如果記憶體位置的資料是由一個變數改變的,其他變數會自動反映這種值的變化。內建的 引用型別有:object、dynamic 和 string。
物件(Object)型別 是 C# 通用型別系統(Common Type System - CTS)中所有資料型別的終極基類。Object 是 System.Object 類的別名。所以物件(Object)型別可以被分配任何其他型別(值型別、引用型別、預定義型別或使用者自定義型別)的值。但是,在分配值之前,需要先進行型別轉換。
當一個值型別轉換為物件型別時,則被稱為 裝箱;另一方面,當一個物件型別轉換為值型別時,則被稱為 拆箱。
object obj; obj = 100; // 這是裝箱
您可以儲存任何型別的值在動態資料型別變數中。這些變數的型別檢查是在執行時發生的。
宣告動態型別的語法:
dynamic= value;
例如:
dynamic d = 20;
動態型別與物件型別相似,但是物件型別變數的型別檢查是在編譯時發生的,而動態型別變數的型別檢查是在執行時發生的。
字串(String)型別 允許您給變數分配任何字串值。字串(String)型別是 System.String 類的別名。它是從物件(Object)型別派生的。字串(String)型別的值可以透過兩種形式進行分配:引號和 @引號。
例如:
String str = "runoob.com";
一個 @引號字串:
@"runoob.com";
C# string 字串的前面可以加 @(稱作"逐字字串")將跳脫字元(\)當作普通字元對待,比如:
string str = @"C:\Windows";
等價於:
string str = "C:\\Windows";
@ 字串中可以任意換行,換行符及縮排空格都計算在字串長度之內。
string str = @"";
使用者自定義引用型別有:class、interface 或 delegate。我們將在以後的章節中討論這些型別。
指標型別變數儲存另一種型別的記憶體地址。C# 中的指標與 C 或 C++ 中的指標有相同的功能。
宣告指標型別的語法:
type* identifier;
例如:
char* cptr; int* iptr;
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2854366/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 瞭解下C# 型別轉換C#型別
- 瞭解下C# 可空型別(Nullable)C#型別Null
- 瞭解下C# 介面(Interface)C#
- 瞭解下C# 事件(Event)C#事件
- 瞭解下C# 變數C#變數
- 瞭解下C# 繼承C#繼承
- 瞭解下C# 類(Class)C#
- 瞭解下C# 運算子C#
- 瞭解下C# 迴圈C#
- 瞭解下C# 判斷C#
- 瞭解下C# 程式結構C#
- 瞭解下C# 索引器(Indexer)C#索引Index
- 瞭解下C# 屬性(Property)C#
- 瞭解下C# 委託(Delegate)C#
- 瞭解下C# 陣列(Array)C#陣列
- 瞭解下C# 字串(String)C#字串
- 瞭解下C# 多執行緒C#執行緒
- 瞭解下C# 運算子過載C#
- 瞭解下C# 異常處理C#
- 瞭解下C# 正規表示式C#
- 瞭解下C# 結構體(Struct)C#結構體Struct
- 瞭解下C# 名稱空間(Namespace)C#namespace
- 瞭解下C# 前處理器指令C#
- SQL資料型別和C#資料型別間的轉換SQL資料型別C#
- c#資料型別學習C#資料型別
- C#基礎資料型別C#資料型別
- 瞭解下C# 不安全程式碼C#
- 瞭解下C#異常時的輸出C#
- 探索c#之不可變資料型別C#資料型別
- c#之資料型別小測記C#資料型別
- 瞭解下C# 檔案的輸入與輸出C#
- 瞭解下WSDL 埠
- 大致瞭解下websocketWeb
- Laravel bootstraper 瞭解下Laravelboot
- 瞭解下RSS 元素
- C#資料型別及其轉換詳解C#資料型別
- C#與Windows API對應資料型別C#WindowsAPI資料型別
- C#插入Oracle中Timestamp型別資料C#Oracle型別