IDE0059 对 'number' 不必要的赋值
IDE0059 Unnecessary assignment of a value to 'number'
我接到了一个作业,其中有一些用户输入。我的目标是只允许用户输入一个整数。该程序按我的意愿运行,但这条消息让我很困惑。
那里有什么问题,我该如何解决?
static int Check_input(string input)
{
bool is_valid = Int32.TryParse(input, out int number);
if (is_valid)
{
number = 1;
}
else
{
number = 0;
}
return (number);
}
您不需要用 out int number
分配数字,因为您稍后会将其设置为 0 或 1。
更准确的说你的if,else反正没用。您已经将数字设置为 1 或 0,否则无论如何都无法将其设置为布尔值。
固定代码:
static bool Check_input(string input) {
bool is_valid = Int32.TryParse(input, out _);
return (is_valid);
}
在您的方法 bool is_valid = Int32.TryParse(input, out int number);
的第一行中,您创建了一个新变量 number
并为其赋值。但是您永远不会使用这个值,因为您立即将值 1 或 0 分配给它。实际上,您可以缩短您的代码
static int Check_input(string input)
{
bool is_valid = Int32.TryParse(input, out _);
if (is_valid)
{
return 1;
}
else
{
return 0;
}
}
在这里,您丢弃了 TryParse
的输出参数,只调查它的 return 值以检查您的方法应该 return.
但实际上,您应该 return 一个布尔值来查看用户是否输入了有效数字,这将使您的方法看起来像这样:
static bool Check_input(string input)
{
return Int32.TryParse(input, out _);
}
这更简单,使用布尔变量比使用可能为 1 或 0 的整数更容易。比较一下:
if(Check_input("test") == 1)
{
Console.WriteLine("good input");
}
else
{
Console.WriteLine("bad input");
}
和
if(Check_input("test"))
{
Console.WriteLine("good input");
}
else
{
Console.WriteLine("bad input");
}
我接到了一个作业,其中有一些用户输入。我的目标是只允许用户输入一个整数。该程序按我的意愿运行,但这条消息让我很困惑。 那里有什么问题,我该如何解决?
static int Check_input(string input)
{
bool is_valid = Int32.TryParse(input, out int number);
if (is_valid)
{
number = 1;
}
else
{
number = 0;
}
return (number);
}
您不需要用 out int number
分配数字,因为您稍后会将其设置为 0 或 1。
更准确的说你的if,else反正没用。您已经将数字设置为 1 或 0,否则无论如何都无法将其设置为布尔值。
固定代码:
static bool Check_input(string input) {
bool is_valid = Int32.TryParse(input, out _);
return (is_valid);
}
在您的方法 bool is_valid = Int32.TryParse(input, out int number);
的第一行中,您创建了一个新变量 number
并为其赋值。但是您永远不会使用这个值,因为您立即将值 1 或 0 分配给它。实际上,您可以缩短您的代码
static int Check_input(string input)
{
bool is_valid = Int32.TryParse(input, out _);
if (is_valid)
{
return 1;
}
else
{
return 0;
}
}
在这里,您丢弃了 TryParse
的输出参数,只调查它的 return 值以检查您的方法应该 return.
但实际上,您应该 return 一个布尔值来查看用户是否输入了有效数字,这将使您的方法看起来像这样:
static bool Check_input(string input)
{
return Int32.TryParse(input, out _);
}
这更简单,使用布尔变量比使用可能为 1 或 0 的整数更容易。比较一下:
if(Check_input("test") == 1)
{
Console.WriteLine("good input");
}
else
{
Console.WriteLine("bad input");
}
和
if(Check_input("test"))
{
Console.WriteLine("good input");
}
else
{
Console.WriteLine("bad input");
}