C# 中 Char 到 Int 的显式转换
Char to Int explicit Conversion in C#
我正在尝试学习 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
,1
的ASCII值。如何获取 char 1
而不是 ASCII 值。请不要对我在 C# 的第一天太苛刻 ;)..
你命中了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);
}
我正在尝试学习 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
,1
的ASCII值。如何获取 char 1
而不是 ASCII 值。请不要对我在 C# 的第一天太苛刻 ;)..
你命中了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);
}