91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

C# 基礎編程 ---- 類型和變量

發布時間:2020-07-21 20:23:50 來源:網絡 閱讀:387 作者:joyce_jm 欄目:編程語言

    C#中的類型有兩種:值類型(Value Type)和引用類型(Reference Type)。值類型的變量直接包含它們的數據,而引用類型的變量存儲對它們的數據的引用,后者稱為對象。對于引用類型,兩個變量可能引用同一個對象,因此對一個變量的操作可能影響另一個變量所引用的對象。對于值類型,每個變量都有它們自己數據的副本(除ref和out參數變量外),因此對一個變量的操作不可能影響另一個變量。


    C#值類型可分為簡單類型(Simple Type)、枚舉類型(Enum Type)、結構類型(Struct Type)和可以為null(Nullale Type)的類型。

    C#引用類型可分為類類型(Class Type)、接口類型(Interface Type)、數組類型(Array Type)和委托類型(Delegate Type)。


    C#值類型(Value Type):

    1. 簡單類型(Simple Type):

        有符號整型:sbyte(8 bit), short(16 bit), int(32 bit), long(64 bit)

        無符號整型:byte(8 bit), ushort(16 bit), uint(32 bit), ulong(64 bit)

        Unicode字符:char,表示一個UTF-16編碼單元。

        浮點型:float(32 bit), double(64 bit),它們使用單精度和雙精度的IEEE754格式表示。

        高精度小數型:decimal(128 bit),適合用于財務計算和貨幣計算。

        布爾型:bool,用于表示值為true和false的布爾值。

    2. 枚舉類型(Enum Type):

        enum E { ... }形式的用戶自定義類型

    3. 結構類型(Struct Type):

        struct S { ... }形式的用戶自定義類型

    4. 可以為null的類型(Nullable Type):

        其他所有具有null值的值類型的擴展


    C#引用類型(Reference Type):

    1. 類類型(Class Type):

        所有其他類型的最終基類:object

        Unicode字符串:string

        class C { ... }形式的用戶自定義類型

    2. 接口類型(Interface Type):

        interface I { ... }形式的用戶自定義類型

    3. 數組類型(Array Type):

        一維數組和多維數組,例如int[]和int[,]

    4. 委托類型(Delegate Type):

        delegate int D( ... )形式的用戶自定義類型    


    C#值類型中簡單類型的取值范圍:

    有符號整型:

    sbyte, 8 bit,取值范圍:-128 ~ 127

    short, 16 bit, 取值范圍:-32678 ~ 32767

    int, 32 bit, 取值范圍:-2147483648 ~ 2147483647

    long, 64 bit, 取值范圍:–9223372036854775808 ~ 9223372036854775807 


    無符號整型:

    byte, 8 bit, 取值范圍:0 ~ 255

    ushort, 16 bit, 取值范圍:0 ~ 65535

    uint, 32 bit, 取值范圍:0 ~ 4294967295

    ulong, 64 bit, 取值范圍:0 ~ 18446744073709551615


    浮點型:

    float, 32 bit, 取值范圍:1.5 * 10^-45 ~ 3.4 * 10 ^ 38,7位精度

    double, 64 bit, 取值范圍:1.5 * 10^-324 ~ 1.7 * 10^308,15位精度


    高精度小數型:

    decimal, 128 bit, 取值范圍:1.0 * 10^-28 ~ 7.9 * 10^28,28位精度


    字符型:

    char, 16 bit, 取值范圍:0 ~ 65535


    布爾型:

    bool, 取值范圍:true/false   


    C#程序使用類型聲明(Type Declaration)來創建新類型。類型聲明指定***手類型的名稱和成員。在C#類型分類中,有五類是用戶可定義的:類類型、結構類型、接口類型、枚舉類型和委托類型。

    類類型定義一個包含數據成員和函數成員的數據結構。類類型支持單一繼承和多態,派生類可用來擴展和專用化基類的機制。

    結構類型與類類型相似,表示一個帶有數據成員和函數成員的結構。但是,與類不同,結構是一種值類型,并且不需要堆分配。結構類型不支持用戶指定的繼承,并且所有結構類型都隱式地從類型object繼承。

    接口類型定義了一個協定,作為一個公共函數成員的命名集。實現某個接口的類或結構必須提供該接口的函數成員的實現。一個接口可以從多個基接口繼承,而一個類或結構可以實現多個接口。

    委托類型表示對具有特定參數列表和返回類型的方法的引用。通過委托,我們能夠將方法作為實體賦值給變量和作為參數傳遞。委托類似于在其他某些語言中的函數指針的概念,但是與函數指針不同,委托是面向對象的,并且是類型安全的。

    類類型、結構類型、接口類型和委托類型都支持泛型,困此可以通過其他類型將其參數化。

    枚舉類型是具有命名常量的獨特的類型。每種枚舉類型都具有一個基礎類型,該基礎類型必須是八種整型之一。枚舉類型的值集和它的基礎類型的值集相同。

    C#支持由任何類型組成的一維和多維數組。與以上列出的類型不同,數組類型不必聲明就可以使用。實際上,數組類型是通過在某個類型名后加一對方括號來構造的。

    可以為null的類型也不必聲明就可以使用。對于每個不可以為ull的值類型T,都有一個相應的可以為null的類型T?,該類型可以容納附加值null。

    C#的類型系統是統一的,因此任何類型的值都可以按對象處理。C#中的每個類型直接或間接地從object類類型派生,而object是所有類型的最終基類。引用類型的值都被視為object類型,被簡單地當作對象來處理。值類型的值則通過對其執行裝箱和拆箱操作按對象來處理。

    當將值類型的值轉換為類型object時,將分配一個對象實例(也稱“箱子”)以包含該值,并將值復制到該箱子中。反過來,當將一個object引用強制轉換為值類型時,將檢查所引用的對象是否含有正確的值類型,如果有,則將箱子中的值復制出來。

    C#的統一類型系統實際上意味著值類型可以“按需”轉換為對象。因為統一,所以使用類型object的通用庫可以與引用類型和值類型一同使用。


    C#變量包括字段、數組元素、局部變量和參數。

    變量表示了存儲變量,并且每個變量都有一個類型,以決定什么樣的值能夠存入變量,如下概述:

    1. 不可以為null的值類型變量:類型完全相同的值。

    2. 可以為null的值類型變量:null值和類型完全相同的值。

    3. object變量:null引用、對任何引用類型的對象的引用,或者對任何值類型的裝箱的引用。

    4. 類類型變量:null引用、對該類類型的實例的引用,或者對從該類類型派生的類的實例的引用。

    5. 接口類型變量:null引用、對實現該接口類型的類類型的實例的引用,或者對實現該接口類型的值類型的裝箱值的引用。

    6. 數組類型變量:null引用、對該數組類型的實例的引用,或者對兼容數組類型的實例的引用。

    7. 委托類型變量:null引用或對該委托類型的實例的引用。

向AI問一下細節

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

AI

湘西| 阿拉善右旗| 乳山市| 中超| 元谋县| 嘉峪关市| 南投县| 岗巴县| 雅安市| 富宁县| 鄢陵县| 隆尧县| 沙坪坝区| 海宁市| 丁青县| 肇州县| 乐昌市| 陇南市| 新乐市| 三门峡市| 大兴区| 万载县| 团风县| 涟源市| 白玉县| 莱阳市| 随州市| 曲阜市| 祁连县| 平安县| 南华县| 漳浦县| 中阳县| 资中县| 通州市| 鄂托克前旗| 安泽县| 岳池县| 富锦市| 乐业县| 长宁区|