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