C#int& int32声明

时间:2017-03-19 05:13:35

标签: c#

我是c#的新手,请原谅我,但我只想知道为什么要将int转换为int32?

例如我将lowerRange声明为int,但稍后当我读取用户输入时,我必须将其转换为int32否则它会给我一个错误,说我“无法隐式转换类型”字符串'到'int'。

或者我假设我必须转换,因为用户正在输入一个字符串,我必须将其转换为int,在这种情况下,我想知道为什么我必须将lowerRange声明为int第一名?

int lowerRange;
...
lowerRange = Convert.ToInt32(Console.ReadLine());

2 个答案:

答案 0 :(得分:8)

Console.ReadLine()方法返回string,如果要将其分配给Convert.ToInt32整数变量,则需要将其解析并转换为整数(使用lowerRange

所以基本上你有这个:

int lowerRange;
...
string userInput = Console.ReadLine();
lowerRange = Convert.ToInt32(userInput);

另请注意ReadLine方法返回字符串的原因是因为用户可以输入任何内容作为输入。因此,您可能希望使用TryParse方法验证用户是否输入了有效数字,否则ToInt32方法将引发异常:

string userInput = Console.ReadLine();
if (int.TryParse(userInput, out lowerRange))
{
    // The user entered a valid integer you can use the lowerRange variable here
}
else
{
    Console.WriteLine("Please enter a valid number");
}

答案 1 :(得分:0)

  

我必须将它转换为int32否则它   给我一个错误,说我"不能隐式转换类型'字符串'至   ' INT'

因为Console.Readline()返回来自用户输入的字符串。

  

或者我假设我必须转换,因为用户正在输入   字符串,我必须将其转换为int,在这种情况下,我会   想知道为什么我必须首先将lowerRange声明为int?

如果您想将lowerRange用作字符串,则不需要将Convert声明为整数。但是如果你想将它用作整数,那么你需要转换它(使用href类)。