检查值的方法不起作用

本文关键字:不起作用 方法 检查 | 更新日期: 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;
}