C# 類型

2018-01-16 00:08 更新

C#類型

類型定義值的藍圖。有不同的操作與不同類型相關(guān)聯(lián)。

在下面的示例中,我們使用兩個類型為int的常量,值為2 3。


static void Main() {
   int x = 2 * 3;
   Console.WriteLine (x); 
} 

int 是一個表示整數(shù)值的構(gòu)建類型。

C#也定義類型,如long,string,byte ...

變量

我們在上面的代碼中聲明了一個類型為 int 的變量,其名稱為 x 。

變量表示可以包含不同值的內(nèi)存位置。我們可以為變量賦予不同的值。

相反,常數(shù)總是表示相同的值:


const int y = 6; 

相反,常數(shù)總是表示相同的值:

C#中的所有值都是類型的實例。


預(yù)定義類型示例

預(yù)定義類型是編譯器支持的類型。

上面示例中的int類型是用于表示整數(shù)集合的預(yù)定義類型,從-231到231-1。

我們可以執(zhí)行函數(shù),如與int類型的實例的算術(shù)如下:


int x = 2 * 3; 

C#有其他類型。C#type string 表示一個序列字符,如“.NET"。

我們可以通過調(diào)用函數(shù)來處理字符串,如下所示:


string message = "Hello world"; 
string upperMessage = message.ToUpper(); 
Console.WriteLine (upperMessage); 

上面的代碼生成以下結(jié)果。


int x = 2; 
message = message + x.ToString(); 
Console.WriteLine (message); 

上面的代碼生成以下結(jié)果。



值類型與引用類型

所有C#類型分為以下類別:

  • 值類型
  • 引用類型
  • 通用類型參數(shù)
  • 指針類型

值類型包括大多數(shù)內(nèi)置類型,例如,int,long,bool以及自定義結(jié)構(gòu)和枚舉類型。

引用類型包括所有類,數(shù)組,委托和接口類型。它還包括預(yù)定義的 string 類型。

值類型

值類型變量或常量的內(nèi)容是一個值。

我們可以使用 struct 關(guān)鍵字定義一個自定義值類型:


public struct Point { 
    public int X, Y; 
} 

值類型實例的分配始終會復(fù)制實例。

例如:


static void Main() { 
    Point p1 = new Point(); 
    p1.X = 1;
    Point p2 = p1; // Assignment causes copy

    Console.WriteLine (p1.X); // 1 
    Console.WriteLine (p2.X); // 1

    p1.X = 2; // Change p1.X

    Console.WriteLine (p1.X); // 2 
    Console.WriteLine (p2.X); // 1 
} 

引用類型

引用類型有兩部分:一個對象和對該對象的引用。

引用類型變量的內(nèi)容是對包含該值的對象的引用。

這里是作為類重寫的Point類型:


public class Point { 
   public int X, Y; 
} 

分配引用類型變量會復(fù)制引用,而不是對象實例。

這允許多個變量引用同一個對象。


static void Main() { 
    Point p1 = new Point(); 
    p1.X = 1;

    Point p2 = p1; // Copies p1 reference

    Console.WriteLine (p1.X); // 1 
    Console.WriteLine (p2.X); // 1


    p1.X = 2; // Change p1.X

    Console.WriteLine (p1.X); // 2 
    Console.WriteLine (p2.X); // 2 
} 

空值

一個引用可以分配常量null,表示引用指向沒有對象:


class Point {...} 

Point p = null; 
Console.WriteLine (p == null); // True 

值類型通常不能為null值:

預(yù)定義類型分類法

C#中的預(yù)定義類型有:

  • 值類型
    • 數(shù)字
    • 有符號整數(shù) (sbyte, short, int, long)
    • 無符號整數(shù) (byte, ushort, uint, ulong)
    • 實數(shù) (float, double, decimal)
    • 邏輯 (bool)
    • 字符 (char)
  • 引用類型
    • String (string)
    • Object (object)

C#別名中的預(yù)定義類型System命名空間中的框架類型。

這兩個語句之間只有語法上的區(qū)別:


int i = 5; 
System.Int32 i = 5; 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號