【c#教程】C# 資料類型

來源:互聯網
上載者:User

C# 資料類型

在 C# 中,變數分為以下幾種類型:

實值型別(Value types)

參考型別(Reference types)

指標類型(Pointer types)

實值型別(Value 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 1028 到 7.9 x 1028) / 100 到 28 0.0M

double 64 位元雙精確度浮點型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D

float 32 位單精確度浮點型 -3.4 x 1038 到 + 3.4 x 1038 0.0F

int 32 位有符號整數類型 -2,147,483,648 到 2,147,483,647 0

long 64 位元有符號整數類型 -923,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 類型的儲存尺寸:

namespace DataTypeApplication{   class Program   {      static void Main(string[] args)      {         Console.WriteLine("Size of int: {0}", sizeof(int));         Console.ReadLine();      }   }}

當上面的代碼被編譯和執行時,它會產生下列結果:

Size of int: 4

參考型別(Reference types)

參考型別不包含儲存在變數中的實際資料,但它們包含對變數的引用。

換句話說,它們指的是一個記憶體位置。使用多個變數時,參考型別可以指向一個記憶體位置。如果記憶體位置的資料是由一個變數改變的,其他變數會自動反映這種值的變化。內建的 參考型別有:object、dynamic 和 string。

對象(Object)類型

對象(Object)類型 是 C# 一般型別系統(Common Type System - CTS)中所有資料類型的終極基類。Object 是 System.Object 類的別名。所以對象(Object)類型可以被分配任何其他類型(實值型別、參考型別、預定義類型或使用者自訂類型)的值。但是,在分配值之前,需要先進行類型轉換。

當一個實值型別轉換為物件類型時,則被稱為 裝箱;另一方面,當一個物件類型轉換為實值型別時,則被稱為 拆箱。

object obj;obj = 100; // 這是裝箱

動態(Dynamic)類型

您可以儲存任何類型的值在動態資料類型變數中。這些變數的類型檢查是在運行時發生的。

聲明動態類型的文法:

dynamic <variable_name> = value;

例如:

dynamic d = 20;

動態類型與物件類型相似,但是物件類型變數的類型檢查是在編譯時間發生的,而動態類型變數的類型檢查是在運行時發生的。

字串(String)類型

字串(String)類型 允許您給變數分配任何字串值。字串(String)類型是 System.String 類的別名。它是從對象(Object)類型派生的。字串(String)類型的值可以通過兩種形式進行分配:引號和 @引號。

例如:

String str = "w3cschool.cc";

一個 @引號字串:

@"w3cschool.cc";

C# string 字串的前面可以加 @(稱作"逐字字串")將逸出字元(\)當作一般字元對待,比如:

string str = @"C:\Windows";

等價於:

string str = "C:\\Windows";

@ 字串中可以任意換行,分行符號及縮排空格都計算在字串長度之內。

string str = @"<script type=""text/javascript"">    <!--    -->    </script>";

使用者自訂參考型別有:class、interface 或 delegate。我們將在以後的章節中討論這些類型。

指標類型(Pointer types)

指標類型變數儲存另一種類型的記憶體位址。C# 中的指標與 C 或 C++ 中的指標有相同的功能。

聲明指標類型的文法:

type* identifier;

例如:

char* cptr;int* iptr;

我們將在章節"不安全的代碼"中討論指標類型。


以上就是【c#教程】C# 資料類型的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.