《Beginning C# Objcets》学习笔记
11年8月底從android平臺轉為windows phone平臺的開發負責人,以前從未學習過C#,由于在android平臺上開發優秀,部門經理讓我嘗試一下;對以技術為主的我而言,積累的知識和項目經驗也可以嘗試一下多平臺了,以開闊技術視野,對比學習,而且Java和C#都是基于虛擬機的語言,是一個不錯的選擇,學習過程做一個筆記:
《Beginning C# Objcets》不錯的基礎入門書籍:一個星期左右快速閱讀,熟悉基本語法,將C#一些用法與Java做類比學習,如下:
1.char 為16位unicode類型;Java中盡量少用;
2.輸出Consele.WriteLine("log")==System.out.println("log")
3.using == import;namespace==package;默認使用全局命名空間;System 命名空間類似Java中java.包的命名空間;
4.string、int、bool為預定義的System命名空間中的類型String等類的別名;new String("str")方式不允許,寫成String str = "str";@開頭可以加入轉義字符;可用數組[]操作;
String類的==比較的是值,其它預定義類比較的是引用,建議使用Object.ReferenceEquals(obj1,obj2)比較的對象引用/句柄;obj1.Equals(obj2)在不同類中可以被override,根據不同類的定義不同,比較值;
obj.ToString()簡單返回對象類型的全名;
5.static void Main()方法大寫,方法命名大寫字母開頭,公有屬性開頭為大寫字母;
6.術語:句柄==引用;
7.getter/setter方法可用property代替,public string Name { get{return name;} set {name = value} },Name將private屬性的name首字母大寫,參數名value由編譯器傳入;
8.方法中局部變量聲明后需初始化,不會被默認初始化;類字段默認初始化為0/null,由類構造器初始化;
9.關聯:學生 修 課程
鏈接:具體學生實例 修 具體課程實例
10.繼承:冒號 特殊化specialization :普遍化generalization
方法覆蓋:virtual聲明、override實現、base
方法隱藏--非virtual方法覆蓋:new,返回類型可以不同;非多態,只調用base類中方法;abstract方法不能被隱藏;
11.overload:不同方法簽名
12.Collections:基本類型int等也作為對象存儲引用;
枚舉器IEnumerator、MoveNext()、Current
foreach(Object obj in objs)
可用[]的數組操作
SortedList 有序列表;
Set 集合,不允許有重復對象引用
Dictionary 字典,key-value; Hashtable
13.多態==繼承+override
14.interface:方法不能有public、abstract
15.static:只能通過類名+點調用,static屬性命名私有的canel方式小寫開頭,方便寫Property,公有的Pascal方式大寫字母開頭;static方法不能override,也不能abstract;
16.const常量:默認為static,不能加static,聲明時賦給可以編譯時得到計算結果的值;
17.csc /t:library dll.cs 生成dll.dll庫;
csc /t:exe exe.cs 生成exe可執行文件
csc exe.cs /r:dll.dll 動態鏈接dll庫生成exe可執行文件exe
/main 指定程序入口文件
/out 指定編譯輸出exe、dll文件名
18.微軟中間字節碼語言MSIL==Java字節碼
.NET公共運行時CLR==Java運行環境JRE虛擬機
.NET框架類庫--FCL
19.exception:C#編譯器不強制進行異常處理;
20.調用類中其它構造函數--:this(arg...)或者:base(arg...)
21.typeof==instanceof
22.元注解[obsolete] == @deprecated
23.FileStream(filename, FileMode):字節流-->StreamReader.ReadLine()等方法緩沖讀取;
轉載于:https://www.cnblogs.com/toven/archive/2011/12/06/2277661.html
總結
以上是生活随笔為你收集整理的《Beginning C# Objcets》学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件项目经理职责[转](
- 下一篇: C#图形处理系列(一)——最简单第一步: