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

时间:2017-01-25 05:06:53

标签: c#

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中显示错误。

2 个答案:

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

    }

}