精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

C# 數據類型

c# 數據類型

在 c# 中,變量分為以下幾種類型:

  • 值類型(value types)
  • 引用類型(reference types)
  • 指針類型(pointer types)

 

1. 值類型(value types)

值類型變量可以直接分配給一個值。它們是從類 system.valuetype 中派生的。

值類型直接包含數據。比如 int、char、float,它們分別存儲數字、字符、浮點數。當您聲明一個 int 類型時,系統分配內存來存儲值。

下表列出了 c# 2010 中可用的值類型:

類型描述范圍默認值
bool布爾值true 或 falsefalse
byte8 位無符號整數0 到 2550
char16 位 unicode 字符u +0000 到 u +ffff'\0'
decimal128 位精確的十進制值,28-29 有效位數(-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0m
double64 位雙精度浮點型(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0d
float32 位單精度浮點型-3.4 x 1038 到 + 3.4 x 10380.0f
int32 位有符號整數類型-2,147,483,648 到 2,147,483,6470
long64 位有符號整數類型-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0l
sbyte8 位有符號整數類型-128 到 1270
short16 位有符號整數類型-32,768 到 32,7670
uint32 位無符號整數類型0 到 4,294,967,2950
ulong64 位無符號整數類型0 到 18,446,744,073,709,551,6150
ushort16 位無符號整數類型0 到 65,5350

如需得到一個類型或一個變量在特定平臺上的準確尺寸,可以使用 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

 

2. 引用類型(reference types)

引用類型不包含存儲在變量中的實際數據,但它們包含對變量的引用。

換句話說,它們指的是一個內存位置。使用多個變量時,引用類型可以指向一個內存位置。如果內存位置的數據是由一個變量改變的,其他變量會自動反映這種值的變化。內置的 引用類型有:object、dynamicstring。

1) 對象(object)類型

對象(object)類型 是 c# 通用類型系統(common type system - cts)中所有數據類型的終極基類。object 是 system.object 類的別名。所以對象(object)類型可以被分配任何其他類型(值類型、引用類型、預定義類型或用戶自定義類型)的值。但是,在分配值之前,需要先進行類型轉換。

當一個值類型轉換為對象類型時,則被稱為 裝箱;另一方面,當一個對象類型轉換為值類型時,則被稱為 拆箱。

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

2) 動態(dynamic)類型

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

聲明動態類型的語法:

dynamic <variable_name> = value;

例如:

dynamic d = 20;

動態類型與對象類型相似,但是對象類型變量的類型檢查是在編譯時發生的,而動態類型變量的類型檢查是在運行時發生的。

3) 字符串(string)類型

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

例如:

string str = "yapf.com";

一個 @引號字符串:

@"yapf.com";

c# string 字符串的前面可以加 @(稱作"逐字字符串")將轉義字符(\)當作普通字符對待,比如:

string str = @"c:\windows";

等價于:

string str = "c:\\windows";

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

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

用戶自定義引用類型有:class、interface 或 delegate。我們將在以后的章節中討論這些類型。

 

3. 指針類型(pointer types)

指針類型變量存儲另一種類型的內存地址。c# 中的指針與 c 或 c++ 中的指針有相同的功能。

聲明指針類型的語法:

type* identifier;

例如:

char* cptr;
int* iptr;

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

下一節:c# 類型轉換

c# 教程

相關文章