C# 關於String與string
這篇有點像是反省文…容我娓娓道來…>////<
C#寫了很多年,心中曾對於String和string有過疑問,既然結果一樣,為什麼還要分大小寫?
學藝不精又不求甚解的我沒有立即尋求答案,因專案時程的壓力,只知道程式一支寫過一支…@@
今天寫程式(將vb翻c#)的過程中,又遇到String和string了…
也不曉得為什麼,今天求知慾望很旺盛,於是在網路上找到了答案
由 string 與 String 談起 中提到
「String 指的是 System.String 類別,而 string 則是 C#內建的關鍵字。事實上,string 正是對應到
System.String 類別,也可說 string 是 System.String類別在 C#中的化名(alias),因此兩段 C#程式碼
都會編譯出相同的 IL 碼,對於 CLR 而言這兩者是沒什麼差別的。」
內建型別,又稱做原生型別(Primitive Type),顧名思義就是一個語言內建的型別。
以 C#來說,像是整數(int),浮點數(float),字串(string)等都是內建型別,你可以直接使用這些關鍵字撰寫你的程式,而 C#編譯器將能看懂這些關鍵字並為你編譯出適當的 IL 碼供執行之用。這邊還有個比較不嚴謹的簡陋講法,「程式語言有提供化名(alias)的型別就是該語言的內建型別了」。
文章最後也提到是要用String還是string呢?
在 C#語言規格書 1.2.1 中是建議使用關鍵字,也就是string,但也有人持不同的看法…,而文章作者則是覺得寫法風格一致,不要混用即可。
我覺得雖然不懂這個原理,程式也是可以寫的出來,但有些事情搞懂了,心裡比較踏實一點,觀念更清楚,這樣才是真的有進步。
C#寫了很多年,心中曾對於String和string有過疑問,既然結果一樣,為什麼還要分大小寫?
學藝不精又不求甚解的我沒有立即尋求答案,因專案時程的壓力,只知道程式一支寫過一支…@@
今天寫程式(將vb翻c#)的過程中,又遇到String和string了…
也不曉得為什麼,今天求知慾望很旺盛,於是在網路上找到了答案
由 string 與 String 談起 中提到
「String 指的是 System.String 類別,而 string 則是 C#內建的關鍵字。事實上,string 正是對應到
System.String 類別,也可說 string 是 System.String類別在 C#中的化名(alias),因此兩段 C#程式碼
都會編譯出相同的 IL 碼,對於 CLR 而言這兩者是沒什麼差別的。」
內建型別,又稱做原生型別(Primitive Type),顧名思義就是一個語言內建的型別。
以 C#來說,像是整數(int),浮點數(float),字串(string)等都是內建型別,你可以直接使用這些關鍵字撰寫你的程式,而 C#編譯器將能看懂這些關鍵字並為你編譯出適當的 IL 碼供執行之用。這邊還有個比較不嚴謹的簡陋講法,「程式語言有提供化名(alias)的型別就是該語言的內建型別了」。
文章最後也提到是要用String還是string呢?
在 C#語言規格書 1.2.1 中是建議使用關鍵字,也就是string,但也有人持不同的看法…,而文章作者則是覺得寫法風格一致,不要混用即可。
我覺得雖然不懂這個原理,程式也是可以寫的出來,但有些事情搞懂了,心裡比較踏實一點,觀念更清楚,這樣才是真的有進步。
留言
張貼留言