【发布时间】:2020-03-20 11:55:41
【问题描述】:
我有一个类,我在其中分配货币变量如下:
示例货币格式美元、欧元等
public class codes{
public char currency{get;set;}
}
所以我有另一个类调用代码将其分配给货币变量,如下所示:
public async Task<Codes> ExecuteAsync(hCommand command){
Codes c = new Codes();
//i do some coding to get the currency back then i assign it as follows from a string
c.currency = Convert.ToChar(currency);
}
但它会在该行 System.FormatException: 'String must be exactly one character long.' 引发错误,并且输出返回为 "currency": "\u0000"
我怎样才能让它成为一个 char(3)
【问题讨论】:
-
你应该使用
string而不是char -
为什么不这样:
public string currency { get; set; }?因为你想要像 USD 或 EUR 这样的价值 -
不,我不能将它用作当前的字符串,因为请求的端点需要它作为 char 字符
-
currency变量来自哪里?它设置为什么?如果您打算将它分配给一个字符,为什么它是一个字符串?为什么不使用枚举? -
C# 没有你所说的
char(3)。您可以使用string,或者您可以创建自己的类型Currency,其中包含一个确保具有正确格式的字符串(例如,不要太长)。