我试图将字符串从文本框传递到同一个类中的方法,但是当我尝试这样做时,我收到一条错误消息:
no overload method, TotalWeighting takes one argument.
尽管在我尝试发送的方法的参数中包含了每个对象。调用方法的地方会出现错误消息。
这是程序的底部:
public void textBox7_TextChanged(object sender, EventArgs e)
{//Assignment 6, box 1
string STRtb11 = textBox7.Text;//Get value from textBox7 and set to new varaible STRtb10
TotalWeighting(STRtb11);
}
public void textBox12_TextChanged(object sender, EventArgs e)
{//Assignment 6, box 2
string STRtb12 = textBox12.Text;//Get value from textBox12 and set to new varaible STRtb11
TotalWeighting(STRtb12);
}
public static double TotalWeighting(string STRtb1, string STRtb2, string STRtb3, string STRtb4, string STRtb5, string STRtb6, string STRtb7, string STRtb8, string STRtb9, string STRtb10, string STRtb12)
{
return 0;
}
答案 0 :(得分:5)
您的方法TotalWeighting
接受12个字符串,并且其当前形式不能接受任何更少的字符串。
有几种方法可以改进此方法:
您可以为不使用的每个字符串传递null
,并在方法中处理这些空值:
TotalWeighting("alpha", "bravo", null, null, null, null, null, null, null, null, null, null);
您可以通过将方法签名更改为:
来使用默认参数public static double TotalWeighting(
string STRtb1 = null,
string STRtb2 = null,
string STRtb3 = null,
string STRtb4 = null,
string STRtb5 = null,
string STRtb6 = null,
string STRtb7 = null,
string STRtb8 = null,
string STRtb9 = null,
string STRtb10 = null,
string STRtb12 = null)
{
return 0;
}
您可以为每个所需数量的参数重载方法:
public static double TotalWeighting(string STRtb1) { ... }
public static double TotalWeighting(string STRtb1, string STRtb2) { ... }
...
您可以使用params关键字来允许该方法接受可变数量的参数:
public static double TotalWeighting(params string[] input) { ... }
答案 1 :(得分:0)
您的TotalWeighting
方法需要 12个参数 STRtb1..STRtb12
;所以你应该提供这12个参数或者只用1个参数实现一个函数:
// Leave 1 argument of 12 ones
public static double TotalWeighting(string STRtb1) {
return 0;
}