程序没问题,但是有一个小错误。在我发布具有不同错误的相同程序之前,现在它显示出新的错误。
using System;
class Methodcalling
{
public void Values(int num1, int num2)
{
if (num1 > num2)
{
Console.WriteLine("num2 is large ");
}
else
{
Console.WriteLine("num1 is big");
}
}
static void Main(string[] args)
{
int a, b;
Methodcalling m = new Methodcalling();
Console.WriteLine("enter a no.:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("enter a no.:");
b = Convert.ToInt32(Console.ReadLine());
int result = m.Values(a, b);
}
}
错误:无法隐式转换类型' void'到' int'
答案 0 :(得分:2)
您的方法GetProcAddress
已声明为Values()
- 不返回任何内容的方法。
这样做:
void
您希望该方法返回int result = m.Values(a, b);
值。
因此,您应该在int
中更改代码(只需调用您的方法):
Main
或强>
将您的方法更改为:
m.Values(a, b); // without int result =
并添加public int Values(int num1, int num2) // int instead of void
语句以从该方法返回一些值:
return
在这种情况下,最好不要更改方法(本答案中的第一种情况),因为您不进行任何计算,只需打印到return 0; // your value instead of 0
即可。所以,没有什么可以回归的。
答案 1 :(得分:1)
您正试图将任何内容(void
)分配给int:
int result = m.Values(a, b);
您有两种选择:
将public void Values(int num1, int num2)
更改为public int Values(int num1, int num2)
并返回有用的内容(
或者
不要分配结果,只需拨打m.Values(a, b);
答案 2 :(得分:0)
在这一行
int result = m.Values(a, b);
您调用的方法Values
不返回任何值(void
)
public void Values(int num1, int num2)
您可以调用这样的方法:
m.Values(a, b);
或重新设计Values
方法以返回一些值。
答案 3 :(得分:0)
您正尝试从m.Values
方法接收值。但是您将返回值声明为void
,这意味着您不希望您的方法返回值。
将您的声明从void
更改为int
并返回一个int值,具体取决于if case
答案 4 :(得分:0)
每个方法都返回一个在方法签名中声明的值(execpt一个void方法)。
例如:
public int Values(int num1, int num2){
return num1 + num2;
}
return int type,
public float Values(int num1, int num2){
return num1 + num2;
}
返回浮动类型。
然后我们有void
方法,什么都不返回。 Void
可以做很多事情,但总是没有回报价值。
int result = m.Values(a, b);
中的你试图强制你的void方法返回int