C#有兩個方法能夠一確保變量在使用前進行了初始化:編程
若是局部變量做用域衝突,報CS0136錯。ide
字段與局部變量衝突,隱藏掉字段,訪問被隱藏的實例字段用this關鍵字,靜態字段使用object.fieldname。函數
值類型與引用類型性能
概念與存儲方法的區別,參考第一章。測試
要建立對象必須使用new關鍵字,將一個引用類型賦值給另外一個引用類型獲得的只是它的地址,會隨着它的更改而更改。如:ui
Test x,y; x testX = new Test(); y testY = x; testX.value =1; //這條語句執行後testX與testY的value屬性的值都會爲
C#承認的基本預約義類型並無內置在C#中,而是內置於.NET Framework中。this
decimal不是.NET Formework中內置類型,會形成性能損失。spa
bool類型不能用0來表示false,非0表示true。code
全部內置類型都繼承Object類型。orm
string 的不可變性:如上述代碼中的testX和testY若是他們是string類型,當testX所指向的string改變時,會從新在託管堆中建立出一個新的string並指向它,testY所指向的值也就不會被更改。
if ,else if,else。
case語句的值必需要是常量表達式,不容許使用變量。
與C++的區別:激活了前一個case不會自動激活後一個case,且每個case必須用break不然報錯;能夠把字符串做爲測試變量。
可使用goto "標籤"經行跳轉。
case爲空則不須要break。
循環
for 與 while的區別:for適合可預測次數的循環,while適合不可預測次數的循環。
foreach
要實現foreach的遍歷,類中就必須實現IEnumerable接口。
foreach中不能改變每一項的值。
goto
break
跳出當前循環
continue
跳過這次循環
return
退出當前方法
一旦代碼編輯好,枚舉就成爲基本類型。
與文件或組件不一樣,名稱空間是一種邏輯組合,而不是物理組合。
通常名稱空間可接受的格式爲CompanyName.ProjectName.StstemSection。
名稱空間別名的語法:
using slias = NamespaceName;
命名空間修飾符爲 「::」 。
1 //using System; 2 using TestSystem = System; 3 4 namespace 命名空間別名 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 TestSystem::Console.WriteLine("This is a C# Progam"); 11 TestSystem.Console.ReadKey(); 12 } 13 } 14 }
#if #elif 支持一組邏輯運算符「!」、「==」、「!+」、「||」。
規則應該是一個正確的決策,而不是一種束縛。
Pascal:名稱空間、類、函數名。
Camel:類中的字段(最好加「_」爲前綴能更直觀的知道這是個字段)、方法的參數。
名稱/命名的風格應當儘可能保持一致。
命名空間是.NET區別共享程序集中對象名的惟一方法。
Microsoft建議使用以下名稱空間:<CompanyName>.<TechnologyName>
略
若是該對象的外觀像一個對象,就用屬性來表示它,即:
字段的用法
字段總應該是私有的。
本文部分摘錄自C#高級編程第九版,其他由Earl Jones整理及總結而成,本人能力有限,若有紕漏望及時指出。
若是你喜歡此書,或想了解更詳細內容,請購買正版書籍進行查閱。
轉載請註明出處。
2016-05-07 22:29:18