[英]Cannot convert from method group to Int32
我希望我的小型数学程序看起来非常时尚,这意味着在Main
方法下,我具有以下方法:
Greet()
UserInput1()
UserInput2()
Result()
在Greet()
我只说“ HI”,在UserInput1()
我要收集第一个数字,在UserInput2()
我要收集第二个数字,在Result()
我要打印UserInput1 + UserInput2
的结果。 我可以在UserInput 1 and 2
收集数字,但如果不在Main()
函数下为它们分配值,就好像无法将它们发送到Result()
。
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Greet();
firstNumber();
secondNumber();
result(firstNumber, secondNumber);
Console.ReadKey();
}
public static void Greet()
{
Console.WriteLine("Hello, pls insert two numbers");
}
public static int firstNumber()
{
int num01 = Convert.ToInt32(Console.ReadLine());
return num01;
}
public static int secondNumber()
{
int num02 = Convert.ToInt32(Console.ReadLine());
return num02;
}
public static void result( int num01, int num02)
{
Console.WriteLine(num01 + num02);
}
}
}
改变这个:
result(firstNumber, secondNumber);
对此:
result(firstNumber(), secondNumber());
并删除上面两行中对2个方法的调用。
要调用不带参数的方法,需要带括号的内容。
无法从方法组转换为int
当您尝试采用一种方法(不调用)并将其作为类型传递时,会出现此错误消息。 result
方法需要两个类型为int
参数,但是您尝试将方法传递给它,而不是方法调用的结果。
您需要将结果存储在变量中,或使用()
调用方法:
像这样:
static void Main(string[] args)
{
Greet();
var first = firstNumber();
var second = secondNumber();
result(first , second );
Console.ReadKey();
}
或这个:
static void Main(string[] args)
{
Greet();
result(firstNumber(), secondNumber());
Console.ReadKey();
}
像下面这样调用方法,以使方法结果也将与firstNumber()
和secondNumber()
输出一起调用:
result(firstNumber(),secondNumber());
更多建议:
通过传递适当的消息,然后显示它,使方法Greet()
成为可重用的方法。 这样您就可以将其用于所有显示操作。 该方法的签名为:
public static void Greet(string message)
{
Console.WriteLine(message);
}
仅当输入可转换时,方法Convert.ToInt32()
才会将给定输入转换为整数值。 否则会抛出FormatException
。 所以我更喜欢您为此使用int.TryParse。 这将帮助您确定转换是否成功。 因此firstNumber()
的Method签名将如下所示:
public static int firstNumber()
{
int num01=0;
if(!int.TryParse(Console.ReadLine(),out num01))
{
Greet("Invalid input");
}
return num01;
}
希望您也可以更改secondNumber()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.