说我有一个Currency
班级
public class Currency
{
string Name; // eg "US Dollars"
string Symbol; // eg "$"
decimal Rate; // eg 1.7
}
所以,符号是$,£,.. iec,即它将是一个单个字符。
我之所以使用string
只是因为它可以让您更轻松地翻译/从视图中进行翻译,但是我有什么理由可以使用char
吗?使用char
字段而不是string
有哪些优缺点?或者这是一个类似byte
/ int
的情况,您基本上应该更喜欢int
。
答案 0 :(得分:6)
并非所有货币符号都是单个字符:Symbols List。
答案 1 :(得分:3)
或者这是一个像byte / int的情况,你应该基本上总是喜欢int。
首先,我认为byte
有效用途。 byte
占用的空间少于整数 - 如果您只需要byte
,请使用byte
。
System.Char
对string
有几个好处。首先,它是一个单一的,不可变的值类型。如果您只需要一个字符,这会更有效。
此外,在API中使用char
会导致无法在该字段中放置多个字符。这可能会消除或简化一些所需的验证。
如果真的有意义,你只想要一个char
,我会说使用char
。它简化了代码(减少了验证),使其更有效(更少的内存,因为你没有另一个对象引用),最重要的是,更清楚地表达意图,因为你说“我只想在这里找到一个字符。 “
答案 2 :(得分:3)
好吧,如果你使用char
:
char
最大的“专业人士”)我不知道这些是否对你很重要。
答案 3 :(得分:1)
字符串在这里是可以接受的,你只需要确保字符串总是只包含1个字符,这意味着在那一端有一些额外的代码来防止异常。真的,你可以在这里挑选毒药。