C#的實值型別\實值型別\參考型別\常量\變數\類型轉換

來源:互聯網
上載者:User

實值型別

在前面一章中我們學習了一個簡單的C#程式的主要構成,下面我們就來系統的學習的C#基礎文法,首先學習的是資料類型中的實值型別和參考型別,以及常變數。

  實值型別可以歸類如下:簡單類型,結構類型,枚舉類型。它們是從類 System.ValueType 中派生的。

  簡單類型包括 整型(Intergral types)、小數型(Decimal types)、浮點型(Floating point types)、布爾型(Bool types)、字元型(Char types)。其中整型資料包含 int、 sbyte、 short、 ushort、 uint、 long、 ulong、 byte、char。

  結構類型(struct)可以聲明建構函式、常數、欄位、屬性、方法、索引、操作符和巢狀型別,我們將會在結構一章中具體來講。

  枚舉類型(enum)是由一指定常量集合組成的獨特的類型,我們也會在後面枚舉一章中介紹。

  比如 int、char、float,它們分別儲存數字、字母、浮點數。當您聲明一個 int 類型時,系統分配記憶體來儲存值。

  定義實值型別的標識符還有bool, byte, decimal, double, long, sbyte, short, uint,ulong,ushort。

  我們想定義一個 int,char類型的變數並給它們賦值:

int a=5;    //定義一個int型變數並初始化;
char c='2'; //定義一個char型變數並初始化;

參考型別


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

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

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

object obj;
obj = 100;  // 這是裝箱
  動態(Dynamic)類型可以儲存任何類型的值,其定義方式為:dynamic = value; 例如下面代碼:

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

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

string str = @"C:\Windows";
等價於:

string str = "C:\\Windows";
  @字串中可以任意換行,分行符號及縮排空格都計算在字串長度之內。

string str = @"<script type="text/javascript">
    <!--
    -->
    </script>";
     關於string我們後面還會具體介紹。

常量


常量就是其值固定不變的量。從資料類型角度看,常量的類型可以是任何一種實值型別或參考型別。

  一個常量的聲明就是聲明程式中要用到的常量的名稱和它的值。和變數一樣,我們可以同時聲明一個或多個給定類型的常量,常量的聲明格式如下。

constant-modifier const type constant-declarators;
  其中,常量修飾符 constant-modifier 可以是這些:new、public、protected、internal、private。const是關鍵字,type可以是byte、short、int、uint、ulong、long、char …… 以及枚舉類型或參考型別。

public const int MaxValue = 10
  整數常量可以是十進位、八進位或十六進位的常量。首碼指定基數:0x 或 0X 表示十六進位,0 表示八進位,沒有首碼則表示十進位。

  一個浮點常量是由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。

  字元常量是括在單引號裡,例如,'x',且可儲存在一個簡單的字元類型變數中。一個字元常量可以是一個一般字元(例如 'x')、一個逸出序列(例如 '\t')或者一個通用字元(例如 '\u02C0')。

  字串常量是括在雙引號 "" 裡,或者是括在 @"" 裡。

212         /* 合法 */
0xFeeL      /* 合法 */
85         /* 十進位 */
0213       /* 八進位 */
0x4b       /* 十六進位 */
30         /* int */
30u        /* 無符號 int */
30l        /* long */
30ul       /* 無符號 long */
3.14159       /* 合法 */
314159E-5L    /* 合法 */
\\             \ 字元
\'             ' 字元
\"             " 字元
\?             ? 字元
"hello"      hello字串

變數

  一個變數只不過是一個供程式操作的儲存區的名字。在 C# 中,每個變數都有一個特定的類型,類型決定了變數的記憶體大小和布局。 如何定義變數呢?定義格式如下

data_type variable_list;
  在這裡,data_type 必須是一個有效 C# 資料類型,可以是 char、int、float、double 或其他使用者自訂的資料類型。variable_list 可以由一個或多個用逗號分隔的標識符名稱組成。

  變數可以在聲明時被初始化(指定一個初始值)。初始化由一個等號後跟一個常量運算式組成。

int d = 3, f = 5;    /* 定義初始化 d 和 f */
byte z = 22;         /* 定義初始化 z */
double pi = 3.14159; /* 定義聲明 pi 的近似值 */
char x = 'x';        /* 定義變數 x 的值為 'x' */

類型轉換

在 C# 中,類型轉換有兩種形式:

  隱式類型轉換 ——這些轉換是 C# 預設的以安全方式進行的轉換。例如,從小的整數類型轉換為大的整數類型,從衍生類別轉換為基類。

  顯式類型轉換 ——這些轉換是通過使用者使用預定義的函數顯式完成的。顯式轉換需要強制轉換運算子。

  強制轉換的文法為: (data_type)variable; 其中括弧不可以省略,data_type為要轉換的類型說明符,variable為要轉換的變數。

double d = 5673.74;
int i;
i = (int)d;   // 強制轉換 double 為 int
執行結果為5673。

相關文章

聯繫我們

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