so true

          心懷未來,開創未來!
          隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
          數據加載中……

          .NET零散筆記[3]

          .NET中所有的基類都是System.Object。

          C#中用is代替Java中instanceof關鍵字。

          C#中typeof和Type.GetType函數等同。

          C#中的特性,首先它是一個派生于System.Attribute的類,而且在類命名的時候,通常都以Attribute結尾。定義一個特性就是普通的定義一個類。使用特性時,用一對中括號包含一個該特性定義的實例,然后放在方法前、類前、字段前即可。如:
          我們定義了一個RegistryKeyAttribute的特性,然后使用時就可以:
          [RegistryKey(34,"Foo")]//注意在引用時可以省略Attribute,系統會為其自動添加上
          public int foo;
          然后就可以檢測該類的該屬性是否具有RegistryKeyAttribute特性了。
          C#中使用特性主要是為了添加注釋,并把注釋的信息捆綁到類上,在運行的時候就可以通過反射的機制來得到這些注釋信息了,這點可以類比于Java中的Annotation。

          C#中,可以使用名字隱藏(name hiding)技術,該技術主要應用于當一個類實現了某個接口時,如果我們用該類的一個實例來“點”一下的話,那么應該可以看到被實現的這個接口中的所有內容,為了不讓外界看到接口中的內容,那么可以使用該技術。該技術使用的具體方法是在實現接口中的方法時去掉public關鍵字,改用接口名字代替。例如:本來應該是public void run(){}現在改為void Runnable.run(){}使用這種辦法可以解決“同時實現多個接口時,當不同接口中存在同樣的函數時,產生的名字模糊問題”,比如A和B接口都有fun方法,那么在一個類同時實現A和B接口時,可以這樣寫代碼:void A.fun(){...}
          void B.fun(){...}而在使用時,可以這樣((A)類的一個對象).fun();這樣調用的就是對接口A中fun方法的實現。

          在C#中可以定義基于普通數值類型的enum類型,例如
          enum Test : int
          {
           One=1;
           Two,
           Three
          };

          C#中的switch語句中不允許“貫行<fall-through>”,即當一個case情況滿足時,如果該case沒有break語句,那么就會自動執行下一個case對應的語句,在C#中把貫行給取消了,而在java中還是保留了貫行的。

          C#中也可以定義運算符重載,對于普通運算符重載時,相對于一般的函數定義,我們只需要把“函數名”替換為“operator<某運算符>”即可,例如:public static String operator+ (String s1,String s2)。比較特殊的是定義強制類型轉換運算符,它的定義形式如下:
          public static implicit operator conv-type-out (conv-type-in operand)
          public static explicit operator conv-type-out (conv-type-in operand)
          這里的implicit指“不需要客戶端顯式的給出,它會自動進行”;explicit指的是“客戶端必須顯式的指出需要轉換的類型”。例如:
          public static implicit operator float (String s)
          最后,還需要提醒注意的是,對于運算符重載,必須都定義為public static,這一點必須保證。

          posted on 2008-03-26 22:06 so true 閱讀(296) 評論(0)  編輯  收藏 所屬分類: .NET


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 颍上县| 秦安县| 健康| 兴仁县| 永修县| 昌吉市| 尼勒克县| 清水县| 高台县| 宁乡县| 灯塔市| 都兰县| 岗巴县| 呼和浩特市| 平潭县| 霍林郭勒市| 靖远县| 翁源县| 丽水市| 灵山县| 灌云县| 全州县| 油尖旺区| 海林市| 定南县| 毕节市| 和田县| 香港| 罗山县| 石渠县| 海原县| 聂拉木县| 乌鲁木齐市| 衡水市| 房山区| 旬邑县| 广南县| 兴宁市| 靖宇县| 林西县| 红安县|