何时在数据类中使用char字段

时间:2010-11-02 16:09:04

标签: c# data-structures

说我有一个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

4 个答案:

答案 0 :(得分:6)

并非所有货币符号都是单个字符:Symbols List

答案 1 :(得分:3)

  

或者这是一个像byte / int的情况,你应该基本上总是喜欢int。

首先,我认为byte有效用途。 byte占用的空间少于整数 - 如果您只需要byte,请使用byte

在正确的情况下,{p> System.Charstring有几个好处。首先,它是一个单一的,不可变的值类型。如果您只需要一个字符,这会更有效。

此外,在API中使用char会导致无法在该字段中放置多个字符。这可能会消除或简化一些所需的验证。

如果真的有意义,你只想要一个char,我会说使用char。它简化了代码(减少了验证),使其更有效(更少的内存,因为你没有另一个对象引用),最重要的是,更清楚地表达意图,因为你说“我只想在这里找到一个字符。 “

答案 2 :(得分:3)

好吧,如果你使用char

  • 保证只是一个字符,这对开发人员来说很明显(可能是char最大的“专业人士”)
  • 它永远不会为空(尽管可能是U + 0000)
  • 您将无法处理不在基本多语言平面中的字符

我不知道这些是否对你很重要。

答案 3 :(得分:1)

字符串在这里是可以接受的,你只需要确保字符串总是只包含1个字符,这意味着在那一端有一些额外的代码来防止异常。真的,你可以在这里挑选毒药。