C# 重载无效参数

C# 重载无效参数,c#,forms,overloading,C#,Forms,Overloading,嗨,我是新来的,所以不要对我的菜鸟问题太苛刻 namespace Oef5_3_ShowIncome { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Button_Click(object sender, EventArgs e) {

嗨,我是新来的,所以不要对我的菜鸟问题太苛刻

namespace Oef5_3_ShowIncome
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, EventArgs e)
        {
            int YearSalary = Convert.ToInt32(YearSalaryTextBox.Text);
            int numberOfYears = Convert.ToInt32(numberOfYearsTextBox.Text);
            ShowIncome(YearSalary, numberOfYears);
            MessageBox.Show("something something ", Convert.ToString(ShowIncome)));
        }

        private int ShowIncome(int lalala, int dadada)
        {
            int results = lalala * dadada;
            return results;
        }
    }
}
在。。。Show(“某物”Convert.ToString(ShowIncome));
我收到以下错误:windows.form.messagebox.show(string,string)的最佳重载方法匹配有一些无效参数。

这是因为您没有向ShowIncome传递任何参数,所以您实际上是在尝试调用methodgroup上的Convert.ToString。

这是因为您没有向ShowIncome传递任何参数,因此,您实际上是在尝试调用methodgroup上的Convert.ToString

private void Button_Click(object sender, EventArgs e)
{
    int YearSalary = Convert.ToInt32(YearSalaryTextBox.Text);
    int numberOfYears = Convert.ToInt32(numberOfYearsTextBox.Text);
    int showInCome = ShowIncome(YearSalary, numberOfYears);
    MessageBox.Show("something something ", showInCome.ToString()));
}
int YearSalary = Convert.ToInt32(YearSalaryTextBox.Text);
        int numberOfYears = Convert.ToInt32(numberOfYearsTextBox.Text);
        ShowIncome(YearSalary, numberOfYears);
        MessageBox.Show("something something ", Convert.ToString(ShowIncome(100000, 5).ToString())));
因为调用该方法时没有传递参数


因为调用方法时没有传递参数。

在这一行中,调用方法时没有将结果保存到变量中

ShowIncome(YearSalary, numberOfYears);
你想做的就是这样

int result = ShowIncome(YearSalary, numberOfYears);
然后将结果传递给messagebox方法

MessageBox.Show("something something ", result.ToString()));

在这一行中,您调用的方法没有将结果保存到变量中

ShowIncome(YearSalary, numberOfYears);
你想做的就是这样

int result = ShowIncome(YearSalary, numberOfYears);
然后将结果传递给messagebox方法

MessageBox.Show("something something ", result.ToString()));

嗯,你把解析器弄糊涂了,我相信,它不知道ShowIncome作为一个参数有什么关系

private void Button_Click(object sender, EventArgs e)
        {
            int YearSalary = Convert.ToInt32(YearSalaryTextBox.Text);
            int numberOfYears = Convert.ToInt32(numberOfYearsTextBox.Text);
            int income = ShowIncome(YearSalary, numberOfYears);
            MessageBox.Show("something something ", Convert.ToString(income));
        }


嗯,你把解析器弄糊涂了,我相信,它不知道ShowIncome作为一个参数有什么关系

private void Button_Click(object sender, EventArgs e)
        {
            int YearSalary = Convert.ToInt32(YearSalaryTextBox.Text);
            int numberOfYears = Convert.ToInt32(numberOfYearsTextBox.Text);
            int income = ShowIncome(YearSalary, numberOfYears);
            MessageBox.Show("something something ", Convert.ToString(income));
        }


大家好,我非常感谢大家,通过我的努力,我学会了两种新的方法,如果我再次出现同样的错误,如何绕过这个错误,例如使用…result.ToString,甚至给出自己的参数作为结果。ToString(1000500)

但是我已经看到了解决问题的方法,比如我创建了一个变量 int something=ShowIncome(年薪,numberOfYears)

Show(“yay随机词lalala”+Convert.ToString(某物))


然后它不知怎么起作用了,我希望我知道为什么

大家好,我非常感谢大家,如果我再次出现同样的错误,我学会了两种新方法,例如使用…result.ToString,或者甚至给出自己的论点作为结果。ToString(1000500)

但是我已经看到了解决问题的方法,比如我创建了一个变量 int something=ShowIncome(年薪,numberOfYears)

Show(“yay随机词lalala”+Convert.ToString(某物))


我希望我知道为什么

11个问题,0个被接受。因为收入是一种方法。你的意思可能是
MessageBox.Show(“某物”,Convert.ToString(ShowIncome(年薪,numberOfYears))
mrName,您应该回到前面的问题并接受一些答案。查看常见问题解答以获取说明(或者只选择一个并单击旁边的大复选框)。11个问题,0个接受。因为收入是一种方法。你的意思可能是
MessageBox.Show(“某物”,Convert.ToString(ShowIncome(年薪,numberOfYears))
mrName,您应该回到前面的问题并接受一些答案。查看FAQ以获取说明(或者只需选择一个并单击旁边的大复选框即可)。但是年薪、年薪变为拉拉和达达,对吗?(我只是随便取了一些愚蠢的名字)如果你试图用字符串返回给你的messagebox,它应该正常工作,我想..@mrName我并没有真正理解你说的话。这个:Convert.ToString(ShowIncome)不起作用,因为它是内联的,所以掩盖了真正的错误。它不会返回字符串,因为不存在将methodgroup作为其唯一参数的Convert.ToString重载,因此您会看到错误。如果你调用Convert.ToString(ShowIncome(someint,someint))或任何你想传入的整数,那么是的,那就行了。但是年薪,numberOfYears变成了拉拉和达达,对吗?(我只是随便取了一些愚蠢的名字)如果你试图用字符串返回给你的messagebox,它应该正常工作,我想..@mrName我并没有真正理解你说的话。这个:Convert.ToString(ShowIncome)不起作用,因为它是内联的,所以掩盖了真正的错误。它不会返回字符串,因为不存在将methodgroup作为其唯一参数的Convert.ToString重载,因此您会看到错误。如果你调用Convert.ToString(ShowIncome(someint,someint))或任何你想传入的整数,那么是的,那就行了。如果我想把一个结果保存到一个变量中,并且仍然可以看到结果呢?例如,在ref或out中?你是什么意思?看到结果?out参数通过引用传递变量,因此如果您更改它,它会到处更改。如果我希望将结果保存到变量中,并且仍然可以看到结果,该怎么办?例如,在ref或out中?你是什么意思?看到结果?out参数通过引用传递变量,因此如果您更改它,它会到处更改。