c#中的方法概念程序不工作

c#中的方法概念程序不工作,c#,C#,错误:'Methodcalling.Values(int,int)':并非所有代码路径都返回值 这样,它在VISUAL STUDIO 2013中显示错误。您必须从该方法返回一个int值,因为该方法的签名定义了一个返回类型int,并且您还调用 using System; class Methodcalling { public int Values(int num1, int num2) { if (num1 > num2) {

错误:'Methodcalling.Values(int,int)':并非所有代码路径都返回值


这样,它在VISUAL STUDIO 2013中显示错误。

您必须从该方法返回一个int值,因为该方法的签名定义了一个返回类型
int
,并且您还调用

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);

    }

}
这表明该方法将返回一个整数,但您的方法中没有return语句

如果不希望返回任何整数,可以这样修改该方法

int result = m.Values(a, b);

您必须从该方法返回一个int值,因为该方法的签名定义了返回类型
int
,并且您也在调用

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);

    }

}
这表明该方法将返回一个整数,但您的方法中没有return语句

如果不希望返回任何整数,可以这样修改该方法

int result = m.Values(a, b);

此错误是因为您已声明函数返回一个
int
,但函数不返回任何内容

请查看此链接以获取有关c#中函数声明的参考

要消除错误,请尝试添加
返回0到函数末尾

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);

    }

}
现在可以这样调用此函数来捕获返回值

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
更改为void,如
public void Values(int num1,int num2)
中所示

用法如下:

int TheReturnValue = Values(num1 , num2); //You will get 0 as value for TheReturnValue variable.
您可以这样调用函数(void Return Type):

public void Values(int num1, int num2)
{

    if (num1 > num2)
    {
        Console.WriteLine("num2 is large ");
    }
    else
    {
        Console.WriteLine("num1 is big");
    }
}
由于您仅使用此函数向控制台写入数据,所以void datatype是更好的选择


我希望这有帮助。

此错误是因为您已声明函数返回一个
int
,但您的函数不返回任何内容

请查看此链接以获取有关c#中函数声明的参考

要消除错误,请尝试添加
返回0到函数末尾

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);

    }

}
现在可以这样调用此函数来捕获返回值

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
更改为void,如
public void Values(int num1,int num2)
中所示

用法如下:

int TheReturnValue = Values(num1 , num2); //You will get 0 as value for TheReturnValue variable.
您可以这样调用函数(void Return Type):

public void Values(int num1, int num2)
{

    if (num1 > num2)
    {
        Console.WriteLine("num2 is large ");
    }
    else
    {
        Console.WriteLine("num1 is big");
    }
}
由于您仅使用此函数向控制台写入数据,所以void datatype是更好的选择


我希望这有帮助。

我认为错误信息非常清楚。并非
Methodcalling中的所有代码都会返回值。您已经说过,
Values
返回一个
int
。返回int的位置是什么?如果将函数声明为int,则应返回整数。请注意:为什么使用VS2013?而是使用VS2015或VS2017R,您可以检查正在控制台上打印的字符串:-)它们可能应该交换!我认为错误信息非常清楚。并非
Methodcalling中的所有代码都会返回值。您已经说过,
Values
返回一个
int
。返回int的位置是什么?如果将函数声明为int,则应返回整数。请注意:为什么使用VS2013?而是使用VS2015或VS2017R,您可以检查正在控制台上打印的字符串:-)它们可能应该交换!