溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#類型和C#變量的示例分析

發(fā)布時間:2021-12-03 10:05:24 來源:億速云 閱讀:138 作者:小新 欄目:編程語言

這篇文章主要介紹C#類型和C#變量的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

C#類型有兩種:值類型(value type)和引用類型(reference type)。值類型變量直接包括它們的數(shù)據(jù),而引用類型變量存儲的是它們的數(shù)據(jù)引用,后者被認為是對象。對于引用類型,有可能兩個變量引用相同的對象,因此對其中一個變量的操作可能影響另一個對象引用的對象。對于值類型,每個變量都有自己的數(shù)據(jù)拷貝,因此對一個變量的操作不可能影響其他變量(ref和out參數(shù)變量例外)。

C#的值類型進一步劃分為簡單類型(simple type)、枚舉類型(enum type)和結構類型(struct type);C#的引用類型進一步劃分為類類型(class type)、接口類型(interface type)、數(shù)組類型(array type)和委托類型(delegate type)。

表1.1為整個C#類型系統(tǒng)的概述。

表1.1  C#類型系統(tǒng)的概述

C#類型和C#變量的示例分析

8個整型類型分別支持8位、16位、32位和64位整數(shù)的有符號或者無符號格式。

兩個浮點類型,float和double,分別用32位單精度和64位雙精度的IEEE754格式表示。

decimal是128位的數(shù)據(jù)類型,適合財金和貨幣方面的計算。

C#的bool類型用于表示布爾值——true或者false。

在C#中,字符和字符串的處理使用Unicode編碼。char類型表示16位的Unicode編碼單元,string類型表示16位的Unicode編碼單元的序列。

表1.2總結了C#的數(shù)值類型。

表1.2  C#的數(shù)值類型

C#類型和C#變量的示例分析

C#程序使用類型聲明創(chuàng)建新類型。類型聲明指定新類型的名字和成員。有5種C#類型可由用戶自定義:類類型、結構類型、接口類型、枚舉類型和委托類型。

類類型定義了一個數(shù)據(jù)結構,它包括數(shù)據(jù)成員(字段)和函數(shù)成員(方法、屬性及其他)。類類型支持繼承和多態(tài),即派生類能夠擴展和特殊化基類的機制。

結構類型與類類型相似,表示帶有數(shù)據(jù)成員和函數(shù)成員的結構。然而,與類類型不同的是,結構是值類型,不需要堆分配。結構不支持用戶指定的繼承,所有的結構類型隱式地繼承類型object。

接口類型定義了一個約定,作為一組函數(shù)成員命名的集合。實現(xiàn)接口的類或結構必須提供接口函數(shù)成員的實現(xiàn)。接口可能從多個基接口繼承而來,類或結構也可能實現(xiàn)多個接口。

枚舉類型是帶有命名常量的獨特類型。每個枚舉類型有一個底層的類型,它必須是8個整型類型之一。枚舉類型的值集與底層類型的值集相同。

委托類型通過特定的參數(shù)列表和返回類型表示對方法的引用。委托將方法處理為實體,實體能夠賦值給變量,并且當做參數(shù)傳遞。委托類似于某些程序語言中的方法指針,不同之處在于,委托是面向對象的,并且是類型安全的。

C#支持任何類型的一維和多維數(shù)組。不同于其他類型,數(shù)組類型在它們被使用前不必聲明。事實上,數(shù)組類型的構造是由某個類型名加上方括號。例如,int[]是int的一維數(shù)組,int[,]是int的二維數(shù)組,而int[][]是int的一維數(shù)組的一維數(shù)組。

C#類型系統(tǒng)是統(tǒng)一的,這樣任何類型的值都能夠被處理成對象。C#中每一個類型直接或者間接從object類繼承而來,并且object是所有類型最終的基類。值類型的值可以通過執(zhí)行裝箱(boxing)和取消裝箱(unboxing)的操作處理為對象。在下面的示例中,int被轉換為object,然后又轉回到int。

using System;   class Test  {      static void Main(){       int i=123;       object o=i;     //裝箱       int j=(int)o;    //取消裝箱      }  }

當值類型的值被強制類型轉換為object時,就會分配持有該值的對象實例(也稱為“箱子”),并且值也被拷貝到那個箱子里。相反地,當object引用被強制類型轉換為值類型時,要檢查這個引用類型是否是當前值類型的箱子,如果是的話,箱子中的值就會被拷貝出來。

C#統(tǒng)一的類型系統(tǒng)意味著值類型能夠“按需”轉換為對象。由于這種統(tǒng)一性,使用object類型的通用類庫,例如.NET框架中的集合類,能夠通過引用類型和值類型使用。

存在幾種C#變量,包括字段、數(shù)組元素、局部變量和參數(shù)。變量表示了存儲的位置,并且每一個變量都有一個類型,以決定什么樣的值能夠存入變量中,如表1.3所示。

表1.3  C#變量

C#類型和C#變量的示例分析

以上是“C#類型和C#變量的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI