我试图在c#中学习显式转换。
首先,我明确将string
转换为int
namespace MyfirstCSharpCode
{
class Program
{
static void Main(string[] args)
{
string str = "1234";
int i = Convert.ToInt16(str);
Console.WriteLine(i);
}
}
}
它有效,结果是:1234
现在我尝试将char
转换为int
namespace MyfirstCSharpCode
{
class Program
{
static void Main(string[] args)
{
char str = '1';
int i = Convert.ToInt16(str);
Console.WriteLine(i);
}
}
}
现在结果为49
,ASCII值为1
。如何获取char 1
而不是ASCII值。请不要在c#的第一天太苛刻;)..
答案 0 :(得分:1)
您点击了Conver.ToInt16(char)
的重载方法,char
是UTF-16代码单元,表示1是49.您可以使用Int16.TryParse
来安全地解析数字(需要在16位符号)以获得有效整数。
string str = "1"; // use string if your number e.g 122
short number; // convert to 16 bit signed integer equivalent.
if (Int16.TryParse(str, out number))
{
Console.WriteLine(number);
}