Sar*_*arG 8 .net c# vb.net char
我试图将一些VB.NET代码转换为C#并发现这个有趣的事情.添加两个字符会在VB.NET和C#中返回不同的结果.
VB.NET - 返回字符串
Chr(1) & Chr(2) = " "
Run Code Online (Sandbox Code Playgroud)
C# - 返回int
(char)(1) + char(2) = 3
Run Code Online (Sandbox Code Playgroud)
如何在C#中添加(连接)两个字符?
das*_*ght 15
在C#中char是一个16位数字类型,因此+意味着添加,而不是连接.因此,当你添加a并b获得a+b.此外,这个添加的结果是int(见快速演示).
如果通过"添加两个字符"表示"连接",则在应用运算符之前将它们转换为字符串+将是一种选择.另一个选择是使用string.Format,像这样:
string res = string.Format("{0}{1}", charA, charB);
Run Code Online (Sandbox Code Playgroud)
通过添加到空字符串,您可以强制"转换" char为string......所以
string res = "" + (char)65 + (char)66; // AB
Run Code Online (Sandbox Code Playgroud)
(从技术上讲,它不是转换.编译器知道当你添加string它时必须做一些魔术......如果你尝试添加null一个字符串,它会认为null是一个空字符串,如果你尝试添加string它做一个string.Concat,如果你尝试添加其他任何东西它.ToString()在非字符串成员上做了然后string.Concat)