检查值的方法不起作用
本文关键字:不起作用 方法 检查 | 更新日期: 2023-09-27 17:59:50
我想做的是,检查哪个值更大。首先,我(在控制台中)询问第一个值和第二个值。我想用"Bigger"方法检查哪个值更大。问题是,方法"Bigger"被下划线了,我得到了一个错误。
错误:
bigger_than ____输入。更大(bigger_tan ____输入。)。":并非所有代码路径都返回值
错误来自以下方法:
public int Bigger(Input none)
{
if (First > none.Second)
{
return 1;
}
if (Second > none.First)
{
return -1;
}
}
完整源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace größer_als____
{
class Program
{
static void Main(string[] args)
{
int one;
int two;
Console.WriteLine("bigger than...");
Console.WriteLine("one: ");
Console.Write(">> ");
one = int.Parse(Console.ReadLine());
Console.WriteLine("two: ");
Console.Write(">> ");
two = int.Parse(Console.ReadLine());
Input giveOne = new Input();
giveOne.First = one;
Input giveTwo = new Input();
giveTwo.Second = two;
if (giveOne.Bigger(giveTwo) == 1)
{
Console.WriteLine("The first one [{0}] is bigger.", giveOne);
}
if(giveTwo.Bigger(giveOne) == -1)
{
Console.WriteLine("The second one [{0}] is bigger.", giveTwo);
}
Console.ReadLine();
}
}
class Input
{
private int first;
public int First
{
get { return first;}
set { first = value;}
}
private int second;
public int Second
{
get { return second; }
set { second = value; }
}
public int Bigger(Input none)
{
if (First > none.Second)
{
return 1;
}
if (Second > none.First)
{
return -1;
}
}
}
}
如果两个if
都没有命中怎么办?你需要为每一种可能性提供回报。
public int Bigger(Input none)
{
if (First > none.Second)
{
return 1;
}
if (Second > none.First)
{
return -1;
}
return 0; // <-- return something here
}
并非所有代码路径都返回值
当用两个相等的值调用Bigger()
时会发生什么?它什么也不回。因此出现了错误。
在末尾添加默认条件:
public int Bigger(Input none)
{
if (First > none.Second)
return 1;
else if (Second > none.First)
return -1;
else
return 0;
}