2010-11-02 21 views
1

說我有一個Currency當使用在數據類炭場

public class Currency 
{ 
    string Name; // eg "US Dollars" 
    string Symbol; // eg "$" 
    decimal Rate; // eg 1.7 
} 

因此,符號是$,£..等,即它的將是一個單個字符。

我用string只是因爲它使翻譯視圖/從視圖更容易,但有什麼理由,我應該使用char?使用char字段而不是string有什麼優點/缺點?或者這是一個像byte/int這樣的情況,你應該基本上總是喜歡int

回答

3

好吧,如果你使用char

  • 這是保證是完全是一個單個字符,這是顯而易見的給開發者(或許是最大的「親」爲char
  • 它不可能爲空(雖然它可能是U + 0000)
  • 您將無法處理不在基本多語言平面中的字符

我不知道這些對你是否重要。

1

字符串在這裏是可以接受的,你只需要確保字符串總是隻包含1個字符,這意味着爲了防止異常,在這一端需要一些額外的代碼。真的,你可以在這裏挑選你的毒藥。

3

或者這是一個像byte/int的情況,你應該基本上總是喜歡int。

首先,我認爲byte有效。 byte佔用的空間比int小 - 如果您只需要byte,請使用byte

System.Charstring有兩個優點,在正確的情況下。首先,它是一個單一的,不可變的價值類型。如果你只需要一個字符,這會更有效率。

此外,在您的API中使用char使得不可能將多個字符放入該字段。這可能會消除或簡化一些所需的驗證。

如果真的有意義,你只想要一個單獨的char,我會說使用char。它簡化了代碼(更少的驗證),使其效率更高(因爲沒有其他對象引用,所以內存更少),最重要的是,更清楚地表達意圖,因爲你說「我只想要一個字符。 「

+0

我的印象是字節基本上在32/64位窗口內部填充爲int? – fearofawhackplanet 2010-11-02 16:15:17

+0

@fearofawhackplanet:什麼給了你印象?在某些情況下,這可能是真的,但並非總是如此。 – 2010-11-02 16:16:08

+0

當然,字節問題往往是人們錯誤時,他們認爲「這個值永遠不會超過255」。我已經看過真實世界太多次數。所以,雖然字節有效的使用,你最好確定。 – 2010-11-02 16:17:02

6

並非所有貨幣符號都是單個字符:Symbols List