using System;
class Methodcalling
{
public int 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);
}
}
错误:'Methodcalling.Values(int,int)':并非所有代码路径都返回值
这样在2013年的VISUAL STUDIO中显示错误。
答案 0 :(得分:4)
此错误是因为您已声明函数返回int
,但您的函数不返回任何内容。
请查看此链接here以获取有关c#。
中函数声明的参考为了缓解错误,请尝试将return 0;
添加到函数的末尾。
public int Values(int num1, int num2)
{
if (num1 > num2)
{
Console.WriteLine("num2 is large ");
}
else
{
Console.WriteLine("num1 is big");
}
return 0; // Return zero to the calling function.
}
现在你可以像这样调用这个函数来捕获返回值。
int TheReturnValue = Values(num1 , num2); //You will get 0 as value for TheReturnValue variable.
或如果您不想返回任何值,请将int
更改为public void Values(int num1, int num2)
中的无效。
这是用法:
public void Values(int num1, int num2)
{
if (num1 > num2)
{
Console.WriteLine("num2 is large ");
}
else
{
Console.WriteLine("num1 is big");
}
}
和你可以像这样调用函数(void Return Type):
m.Values(a, b); //without assigning it to a variable
由于您只使用此函数写入控制台,因此void数据类型将是更好的选择。
我希望这会有所帮助。
答案 1 :(得分:1)
您必须从方法返回一个int值,因为方法的签名定义了int
的返回类型,并且您还在调用
int result = m.Values(a, b);
表示该方法将返回一个整数,但您的方法中没有return语句。
如果您不想要返回任何整数,可以修改这样的方法。
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());
m.Values(a, b);
}
}