<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    C#的類型系統

    Posted on 2007-02-12 12:30 dennis 閱讀(987) 評論(0)  編輯  收藏 所屬分類: C#歷程
    一.C#的統一類型系統
    1.C#的類型系統是統一的,java的類型系統分為:基本類型(原生類型)和類類型,而C#的所有類型直接或間接地從object類類型派生而來,從類型系統上來看比java更OO。
    2.C#的類型分為三類:
    (1)值類型,一個值類型或是結構類型或是枚舉類型
    (2)引用類型
    (3)指針類型
    值類型與
    引用類型的不同在于:值類型的變量直接包含其數據而引用類型的變量存儲對其數據的引用(reference)后者稱為對象(object)。對于引用類型兩個變量可能引用同一個對象因此對一個變量的操作可能影響另一個變量所引用的對象。對于值類型,每個變量都有自己的數據副本,對一個變量的操作不可能影響另一個變量。
    二。值類型
    1.所有值類型從類System.ValueType隱式繼承后者又從類object繼承。任何類型都不可能從值類型派生。

    2.
    所有值類型都隱式聲明一個稱為默認構造函數(default constructor)的公共無參數實例構造函數。默認構造函數返回一個零初始化實例它就是該值類型的默認值(default value)

    ·???????? 對于所有simple-types默認值是將其所有位都置零的位模式所形成的值

    o??????? 對于sbytebyteshortushortintuintlongulong默認值為0

    o??????? 對于char默認值為'\x0000'

    o??????? 對于float默認值為0.0f

    o??????? 對于double默認值為0.0d

    o??????? 對于decimal默認值為0.0m

    o??????? 對于bool默認值為false

    ·???????? 對于enum-typeE默認值為0

    ·???????? 對于struct-type默認值是通過將所有值類型字段設置為它們的默認值、將所有引用類型字段設置為null而產生的值。

    3.C#中有所謂的簡單類型概念(simple type),類似于java的基本類型,但又不同,C#的簡單類型本質上都是結構類型(預定義集合的結構類型),所以還是值類型,從System.ValueType繼承而來。C#的簡單類型包括:

    保留字

    化名的類型

    sbyte

    System.SByte

    byte

    System.Byte

    short

    System.Int16

    ushort

    System.UInt16

    int

    System.Int32

    uint

    System.UInt32

    long

    System.Int64

    ulong

    System.UInt64

    char

    System.Char

    float

    System.Single

    double

    System.Double

    bool

    System.Boolean

    decimal

    System.Decimal

    這些簡單類型都是System命名空間中預定義結構類型的別名(ruby的別名實在貼心)

    4.枚舉類型,枚舉類型是具有命名常量的獨特的類型。每個枚舉類型都有一個基礎類型,該基礎類型必須為 bytesbyteshortushortintuintlongulong。如果沒有為枚舉類型中的元素指定基礎值,默認是從0開始逐一遞增。

    三。引用類型

    1.引用類型是類類型、接口類型、數組類型或委托類型。

    2.類類型:包括預定義的類類型和用戶通過class關鍵字的自定義類類型

    3.對象類型:

    object類類型是所有其他類型的最終基類。C# ?中的每種類型都是直接或間接從object類類型派生的。

    關鍵字object只是預定義類System.Object的別名。

    4.string類型:
    string類型是直接從object繼承的密封類類型。關鍵字string只是預定義類System.String的別名.
    5.接口類型:
    與java中的接口概念基本一致,可以變相實現多重繼承。

    類類型

    說明

    System.Object

    所有其他類型的最終基類。

    System.String

    C# ?語言的字符串類型。

    System.ValueType

    所有值類型的基類。

    System.Enum

    所有枚舉類型的基類。

    System.Array

    所有數組類型的基類。

    System.Delegate

    所有委托類型的基類。

    System.Exception

    所有異常類型的基類。


    四。裝箱、拆箱概念
    1.裝箱和拆箱的概念是C# ?的類型系統的核心。它在 value-typereference-type 之間的架起了一座橋梁,使得任何 value-type 的值都可以轉換為 object 類型的值,反過來轉換也可以。
    2.裝箱:
    裝箱轉換允許將value-type隱式轉換為reference-type
    裝箱的行為可以用下面的過程描述:

    sealed class T_Box: System.ValueType
    {
    T value;

    public T_Box(T t) {
    ???? value = t;
    }
    }

    分配一個對象實例然后將value-type的值復制到該實例中
    3.拆箱:
    拆箱轉換允許將reference-type顯式轉換為value-type
    從對象boxvalue-typeT的拆箱轉換相當于執行表達式((T_Box)box).value
    主站蜘蛛池模板: 国色精品va在线观看免费视频| 久久99免费视频| 免费在线观看一区| 一区二区免费视频| 亚洲av无码不卡私人影院| 亚洲黄色免费网址| 国产精品免费αv视频| 99视频在线精品免费观看6| 亚洲高清国产拍精品26U| 另类小说亚洲色图| 亚洲毛片在线免费观看| 亚洲综合无码AV一区二区| 亚洲熟女www一区二区三区| 日本在线看片免费| 久久国产成人亚洲精品影院| 亚洲一级毛片免费观看| 国产精品成人免费观看| 亚洲第一福利网站| 成年免费a级毛片免费看无码| 日本xxwwxxww在线视频免费| 亚洲精品动漫在线| 精品一区二区三区免费毛片爱| 亚洲熟妇无码另类久久久| 污污视频网站免费观看| 国产精品国产亚洲精品看不卡| 131美女爱做免费毛片| 亚洲精品女同中文字幕| 女人18特级一级毛片免费视频| 亚洲在成人网在线看| 亚洲视频免费一区| 欧美激情综合亚洲一二区| 成人免费无码精品国产电影| 特黄特色的大片观看免费视频| 免费在线精品视频| 羞羞视频免费网站日本| 亚洲伦另类中文字幕| 狼群影院在线观看免费观看直播| 亚洲中文无码永久免费| 精品国产综合成人亚洲区 | 日韩亚洲产在线观看| 99热这里有免费国产精品|