簡體   English   中英

C#中的字符串轉字符

[英]string to char in c#

我有一個類,我在其中分配貨幣變量如下:

示例貨幣格式美元、歐元等

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": "\"

我怎樣才能讓它成為一個字符(3)

你可以像這樣聲明你的類

public class Сodes
{
    public string Сurrency { get; set; }
}

並按以下方式使用

Codes c = new Codes();
c.Сurrency = currency;

C# 中的String表示char元素的只讀序列,您不能將像"USD"這樣的字符串分配給單個字符。

另一種選擇是為此使用char數組,例如

public class Сodes
{
    public char[] Сurrency { get; set; }
}

並使用ToCharArray賦值

Codes c = new Codes();
c.Сurrency = currency.ToCharArray();

對類和屬性名稱使用PascalCase是一個很好的規則(順便說一句,您codes類聲明與使用示例Codes不匹配)。

您也可以參考這個問題3 Digit currency code to currency symbol ,如果要將貨幣代碼轉換為貨幣符號,如$

我認為如果你想存儲像貨幣這樣的東西,例如“美元”,字符串是正確的類型,而不是字符。 Char 存儲單個字符。

在任何情況下,如果您仍然想使用 char,對於這種特殊情況,您應該使用一個字符數組:

public class codes{
    public char[] currency { get; set; }
}

然后使用 ToCharArray 代替:

c.currency = Convert.ToCharArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM