切換
舊版
前往
大廳
主題

資策會Unity課程「C#」Day7 part1

冰劍士-冰雪飛 | 2014-10-30 21:48:09 | 巴幣 8 | 人氣 1293

本篇章為 10/27 C#的最後課程,內容上量不多但有些雜亂,算是撰寫程式上的小細節

花了耶時間進行整理,不過有些對於 Unity3D 來講似乎派不上用場的可能

假如有看到這篇的各位,麻煩幫忙評斷下之後寫的 Part2 部分
=====================================================================
int v;
v=45;
這是個Value(值)型態,變數存放內容值

string v;
v="Hello";
這是個Reference(參考)型態,變數存放物件的位址


先別管圖中的幾個參考,那是Visual Studio 2013的功能
圖中的寫法是錯誤的,在於Reference型態中必須能參考到可用的物件,否則程式會出錯


這才是正確的寫法,當你要用類別作為你的變數時就要像圖中指派同名的類別
同時請注意,因為是指派的關係,所以跟之前說的陣列指派有異曲同工之妙
參考:陣列指派

而我們常用的Reference型態,就是 String,管理字串的類別
C#內的 string(注意開頭小寫),就是 System.String,String既是屬這名稱空間的類別

不過 String 內容不能修改,會造成編譯錯誤,能修改字串內容的是 StringBuilder 類別

附帶一提,字串內容比較是否相等用運算子是 ==、!=
=====================================================================
建構子

此圖為簡易的建構子寫法,圖下的兩種方法都是改寫建構子的方式,先來說明下建構子的特性
1.必須具有 public 存取屬性
2.方法名稱與類別名稱相同
3.沒有回傳值,也不可宣告成傳回 void
4.沒有參數
5.會將類別的資料成員初始值設成 0、false 或 null

類別撰寫任何參數個數的版本的建構子後,C#編譯程式就不再自動為類別加入預設建構子

我們可以使用 Initializer List 來設定類別資料成員的初始值
就把圖中的 xx、yy、zz 宣告時就預設好值那樣
=====================================================================
資料型態轉換

子類別轉父類別會自動轉型,可以成功
父類別轉子類別時要強制轉型,且父類別的物件變數必須參考到子類別的物件
否則會轉型失敗,並引發 InvalidCastException 型態的例外


沿用上一張圖,我們可以使用 is (是)運算子來確認是否轉型成功,成功的話則 true


一樣沿用上上張圖,as (等同)運算子類似強制轉型,轉型失敗時則為 null,不引發例外
=====================================================================
當天教的速度很快,而且量有些多有些雜亂,花了點時間做整理

包含尚未撰寫part2的部分,都算是寫C#的小技巧

創作回應

更多創作