<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
    主站蜘蛛池模板: 狠狠色婷婷狠狠狠亚洲综合| 亚洲国产综合精品中文第一区| 日韩电影免费在线观看网址| 亚洲人成人无码网www电影首页| 久久精品私人影院免费看| 一区二区亚洲精品精华液 | 中文字幕日韩亚洲| 最近2019中文字幕免费直播| 亚洲av乱码中文一区二区三区| 国产av无码专区亚洲av果冻传媒| 亚洲高清视频免费| 最新亚洲人成无码网站| 久久亚洲精品无码VA大香大香| 国产免费69成人精品视频| 三年片在线观看免费观看大全一| 亚洲欧美日韩国产成人| 亚洲AV无码专区国产乱码4SE| 国产美女做a免费视频软件| 99热在线免费观看| 毛片基地看看成人免费| 亚洲欧美日韩国产成人| 亚洲色欲色欲综合网站| 亚洲国产精品综合久久一线| 曰批视频免费30分钟成人| a级毛片免费观看在线| 亚洲欧美日韩国产精品一区| 91在线精品亚洲一区二区| 亚洲另类少妇17p| 在线永久免费观看黄网站| 91免费国产精品| 黄色网站软件app在线观看免费| 亚洲日韩中文字幕一区| 亚洲色图视频在线观看| 亚洲国产一成人久久精品| 免费一级毛片免费播放| 成年女人看片免费视频播放器| 99热这里有免费国产精品| j8又粗又长又硬又爽免费视频 | 丁香花在线观看免费观看图片| 亚洲国产欧美日韩精品一区二区三区| 亚洲天天在线日亚洲洲精|