[C#][Tips]資料型別大小寫有差嗎?

  • 10481
  • 0
  • C#
  • 2009-11-29

[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來查看還一模一樣

image

image

image

查看MSDN Library資料型別讓我們知道所有型別的老大都是System.Object所衍生出來

其中內建型別寫者這麼一段:C# 型別關鍵字和它們的別名可互換

換句話說上面三種用法對CLR來說是沒有差別的

而內建型別存在的最大價值我想應該就是方便吧(少寫幾行code和隱式轉型)

那這樣到底要使用關鍵字還是別名呢?就小弟自己而言會比較喜歡使用關鍵字

在C#型別系統中雖然已有明確定義關鍵字和別名的轉換

但你無法確定在別的語言型別系統中這樣的轉換是正常的(除非compiler是自己寫)

不過最重要的還是要維持良好的習慣不要看心情混用,要就始終如一都使用關鍵字(要不就都使用別名)。

最後在告訴他把MSDN Library當成海賊王連載漫畫來看,可幫你獲得不少寶藏的(知識無價阿)。