国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

13.C#分部類型和靜態類(七章7.1-7.2)

2019-11-17 02:39:40
字體:
來源:轉載
供稿:網友

13.C#分部類型和靜態類(七章7.1-7.2)

  再大的東西不去找,也就沒了,再小的知識不去記,也就忘了。今天來寫一寫C#中的分部類型和靜態工具類,這些兩個概念可能在我們的日常使用過程中都使用過,可能大家對這些內容覺得這些不是應該有的東西嘛,那就來復習一下吧。

  分部類型,個人理解是對同一事物在兩個不同空間的描述,編譯器將組織我們編寫的在不同文件中代碼,組合成一個完整的描述。我們不能在一個文件中編寫成員的一半代碼,而把另外一半代碼放到另外一個文件中,每個獨立的成員必須完整地位于所處的文件中。如有一個Map類,成員屬性放在Map0.cs中,而成員方法放在Map1.cs中,注意使用partial關鍵字。

 1 //Map0.cs 2 public partial class Map 3 { 4     public long Width { get; set; } 5     public long Height { get; set; } 6 } 7 //Map1.cs 8 public partial class Map 9 {10     public long GetSize()11     {12         return Width * Height;13     }14 }

  還有一種常見的用法是當一個類要實現某一個接口同時繼承某一個類時,分別在不同文件編寫各自的實現。現有一個新類Canvas,代碼如下

 1 //Canvas0.cs 2 public partial class Canvas : IComparable 3 { 4     public int CompareTo(object obj) 5     { 6         return this.PRice.CompareTo(((Canvas)obj).Price); 7     } 8 } 9 //Canvas1.cs10 public partial class Canvas : Map11 {12     public double Price { get; set; }13 }

  由上可以看到在Canvas0.cs中是對IComparable接口的實現,而在Canvas1.cs中是對Map類的繼承,不同文件分清了不同的功能。但我們在日常使用中,真心不用說要使用分部類型而去使用分部類型,不然文件多了,自己也搞不明白了,應該是不要刻意吧。分部類型的作用往往在于我們在編寫自己的類時,后臺幫我們生成一個使用partial的類,分清了代碼文件的歸屬。

------------------------------------------------------------------------------------------------------

  對于靜態工具類,所有程序都會有自己編寫的或者網上現有的工具類,常用如字符串操作類,數據庫操作類等等。說下工具類的一些特點:

  1. 所有成員都是靜態的(除了私有構造函數)
  2. 類直接從object中派生
  3. 不應該有狀態,除非涉及高速緩存或單例
  4. 不能存在任何可見的構造函數
  5. 類是密封的

  防止類派生,使用sealed關鍵字,添加一個私有構造函數防止創建實例,靜態方法使用static關鍵字,這是C#1中創建工具類的方法,下面看代碼,在C#后續版本中如何實現。

1 public static class StringHelper2 {3     public static int GetLen(string str)4     {5         return str.Length;6     }7 }

  C#編譯器知道類是一個靜態類,所以不用生成一個默認構造函數。下面來抄下課本,羅列下編譯器在類定義上執行的大量約束:

  1. 類不能聲明為abstract或sealed
  2. 類不能設定要實現的接口
  3. 類不能設定要繼承的基類
  4. 類不能包含任何非靜態成員,包括構造函數
  5. 類不能包含任何操作符
  6. 類不能包含任何protected或protected internal成員

  請斧正。

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双桥区| 温宿县| 金川县| 潞城市| 天柱县| 都安| 泾阳县| 江山市| 和平区| 安阳市| 博乐市| 沙河市| 老河口市| 永川市| 中江县| 肥东县| 砀山县| 崇左市| 额尔古纳市| 托克逊县| 望奎县| 凤翔县| 舞阳县| 萨迦县| 新巴尔虎左旗| 鸡泽县| 田林县| 娄烦县| 兰西县| 赞皇县| 柏乡县| 勐海县| 平山县| 北海市| 阳新县| 丽江市| 虎林市| 信丰县| 鄱阳县| 通榆县| 沛县|