我遇到了这段代码的问题。
Console.WriteLine("What is your name?");
string PlayerName = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(PlayerName);
我尝试做的是让计算机读取您输入的名称,并询问您这是否是您的名字。直到我输入我的名字后,虽然有例外。转换.ToInt32不是我应该使用的,我想我的问题是我在那里放什么。
我是编程新手,我甚至不确定它是否被称为unicode。遗憾。
答案 0 :(得分:2)
Console.ReadLine()将返回一个字符串,无需进行任何转换:
Console.WriteLine("What is your name?");
string PlayerName = Console.ReadLine();
Console.WriteLine(PlayerName);
答案 1 :(得分:2)
Convert.ToInt32()
抛出错误。因此,您需要优雅地检查它并获得整数值。为此,您可以Int32.TryParse(input, out val)
获取整数值。
前:
int value;
if(Int32.TryParse(your_input, out value))
{
// if pass condition, then your input is integer and can use accordingly
}
因此,如果您只想打印整数值,那么您的程序将是这样的:
Console.WriteLine("What is your name?");
var value = Console.ReadLine();
int intVal;
if(Int32.TryParse(value, out intVal))
{
Console.WriteLine(intVal);
}
如果您只想打印ReadLine方法中的内容,您可以:
Console.WriteLine("What is your name?");
Console.WriteLine(Console.ReadLine());
答案 2 :(得分:1)
Convert.ToInt32(String)
"将指定的数字字符串表示形式转换为等效的32位有符号整数"。您收到错误是因为您没有在控制台中输入整数值。
您的PlayerName
变量属于string
类型,Console.ReadLine()
的返回值已经是string
,因此您无需进行任何转化。< / p>
答案 3 :(得分:0)
如果您正在处理Unicode字符,则可能必须设置正确的编码
Console.InputEncoding = Encoding.Unicode;
Console.OutputEncoding = Encoding.Unicode;
Console.WriteLine("What is your name?");
string PlayerName = Console.ReadLine();
Console.WriteLine(PlayerName);