[C#][Tips]資料型別大小寫有差嗎?
這天朋友問我,在Compiler中資料型別大小寫有差嗎?他搞不懂之前的程式設計師為何要這樣使用?
而且他自己也感覺不出來到底差在那裏(想改卻不敢下手),雖然執行結果都一樣,但...還是不敢下手
早期小弟剛接觸C#也是有過相同疑問,總覺得微軟吃飽太閒滿無聊了的
所以當時自己也沒多去注意這習慣問題(看心情使用~XD)
不過也因為有嘗過苦頭才讓自己改掉這壞習慣,基於好朋友立場可不能讓他再度陷下去(哈)
static void Main(string[] args)
{
String str = "我是大寫";
Console.Write(str);
type_1();
type_2();
}
static void type_1()
{
string str = "我是小寫";
Console.Write(str);
}
static void type_2()
{
String[] str = new string[2] { "我是", "大小寫" };
Console.Write(str[0]+str[1]);
}
上面三種寫法C# compiler都支援,也可以很順利執行,而且使用IL來查看還一模一樣
查看MSDN Library資料型別讓我們知道所有型別的老大都是System.Object所衍生出來
其中內建型別寫者這麼一段:C# 型別關鍵字和它們的別名可互換。
換句話說上面三種用法對CLR來說是沒有差別的
而內建型別存在的最大價值我想應該就是方便吧(少寫幾行code和隱式轉型)
那這樣到底要使用關鍵字還是別名呢?就小弟自己而言會比較喜歡使用關鍵字
在C#型別系統中雖然已有明確定義關鍵字和別名的轉換
但你無法確定在別的語言型別系統中這樣的轉換是正常的(除非compiler是自己寫)
不過最重要的還是要維持良好的習慣不要看心情混用,要就始終如一都使用關鍵字(要不就都使用別名)。
最後在告訴他把MSDN Library當成海賊王連載漫畫來看,可幫你獲得不少寶藏的(知識無價阿)。