C# 字符串转换字符

c# string convert char

提问人:Tanju Demir 提问时间:8/31/2023 最后编辑:wohlstadTanju Demir 更新时间:8/31/2023 访问量:69

问:

我是 C# 的新手,下面的两个值都有效,它们之间有什么区别?

// 1st option:
string value;
// ...
char tt = Convert.ToChar(value);
// 2nd option:
string value;
// ...
char tt = char.Parse(value);

两者有什么不一样?

C# 字符串 字符

评论

0赞 quaabaam 8/31/2023
Char.Parse ...转换
0赞 madreflection 8/31/2023
两者在语义上都在左场。从功能上讲,他们得到第一个字符。这可以通过 或者,如果需要它在有多个字符时引发错误,则可以使用 (LINQ) 来完成。这两者都比“转换”和“解析”具有更好的语义。语义很重要,因为我们需要编写代码,以便未来的维护者(包括我们自己)了解它在做什么以及为什么。value[0]value.First()

答:

2赞 wohlstad 8/31/2023 #1

没有真正的区别。

Convert.ToChar(string value)char.Parse(string s) 需要一个包含 1 个字符的字符串,如果不是这种情况,则抛出 FormatException

如果字符串确实包含 1 个字符,则它们都以 .char

注意
上面的答案是指您在问题中提到的特定重载。
正如您在上面的链接中看到的,还有其他重载(例如),它们提供了您没有的选项。
Convert.ToCharToChar(String, IFormatProvider)char.Parse

评论

1赞 Tarazed 8/31/2023
是的,我认为你是对的。对不起。
0赞 wohlstad 8/31/2023
没问题@Tarazed。我每天都在这里学习新东西;-)
0赞 Tarazed 8/31/2023
但是,Convert.ToChar() 确实提供了更多的重载/数据类型,并且 Convert.ToChar(String) 支持区域性。
0赞 Jeppe Stig Nielsen 8/31/2023
它们的工作方式与 Linq 扩展相同。char tt = value.Single();
0赞 wohlstad 8/31/2023
@Tarazed(OP 询问的)是特定的重载。但是你是对的,“Convert.ToChar”还有其他重载。Convert.ToChar(String)