C#:方法 WFA 欠税计算器

C#: Methods WFA Tax Owed Calculator

我正在编写一个程序,该程序使用方法获取用户输入的收入并输出他们应缴纳的所得税。

我在第 46 行有一个错误,即 ``private double GetTax(double taxable)` GetTax 是一个 CS0161 - 并非所有代码路径 return 一个值。

我是否遗漏了对 GetTax 的引用?非常感谢您的意见!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Lab_4_Part_2_
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        private void btnCalculate_Click(object sender, EventArgs e)
        {
            //Set input and output to floating decimal
            double taxable = Convert.ToInt32(txtTaxable.Text);
            GetTax(taxable);

        }

        private void EnterNum(double taxable)
        {
            throw new NotImplementedException();
        }

        private double GetTax(double taxable)
        {


            if (taxable <= 9225) return (taxable * 1.1);
            if (taxable > 9225 | taxable < 37450) return (922.50 + (taxable * 1.15));
            if (taxable > 37450 | taxable < 90750) return (5156.25 + (taxable * 1.25));
            if (taxable > 90750 | taxable < 189300) return (18481.25 + (taxable * 1.28));
            if (taxable > 189300 | taxable < 411500) return (46075.25 + (taxable * 1.33));
            if (taxable > 411500 | taxable < 413200) return (119401.25 + taxable * 1.35);
            if (taxable > 413200) return (119996.25 + (taxable * 1.396));

        }


        public string DisplayTaxable(double taxable)
        {
            return  txtOwed.Text;
        }

    }
}

在您的 GetTax() 方法中,所有 return 语句都包含在 if 块中。这意味着,如果命中了 if 块的 none,则当前没有值被 returned。于是,编译报错。

解决此问题的最简单方法是将 <= 行或 > 行转换为最终的 return 语句行,例如:

private double GetTax(double taxable)
{
    if (taxable <= 9225) return (taxable * 1.1);
    //other cases omitted for brevity
    return (119996.25 + (taxable * 1.396));
}

您可以使用 else 语句作为 return 值的前缀,但这不是必需的,更多的是一种代码风格选择。