C# 匹配的最佳重载方法...有一些无效参数
Posted
技术标签:
【中文标题】C# 匹配的最佳重载方法...有一些无效参数【英文标题】:C# The best overloaded method match for ...has some invalid arguments 【发布时间】:2014-04-14 05:03:59 【问题描述】:public class RegistrationClass
SqlConnection myConnection = new SqlConnection("Data Source=MOE-PC\\SQLEXPRESS;Initial Catalog=db_University;Integrated Security=True;Pooling=False");
ConnectionClass con = new ConnectionClass();
int ID , i;
String fullName, motherName, gender, placeOfBirth, email, phone, adress, schoolDegree, languages, highSchool, faculty, major;
public void setValues (String fullName1,String motherName1,String gender1,String placeOfBirth1,String email1,String phone1,String adress1, String faculty1,String major1,String schoolDegree1,String languages1,String highSchool1)
fullName = fullName1;
motherName = motherName1;
gender = gender1;
placeOfBirth= placeOfBirth1;
email =email1;
phone= phone1;
adress =adress1;
faculty =faculty1;
major =major1;
schoolDegree =schoolDegree1;
languages =languages1;
highSchool = highSchool1;
这是点击注册按钮时的网络表单
public partial class WebForm1 : System.Web.UI.Page
protected void Button_Register_Click(object sender, EventArgs e)
string lang = "";
Classes.RegistrationClass R = new Classes.RegistrationClass();
R.setValues(txt_Name.ToString, txt_MotherName.ToString, dropDown_Gender.ToString, dropDown_POB.ToString, txt_Email.ToString, txt_Phone.ToString, txt_Adress.ToString, DropDown_Faculty.ToString, DropDown_Major.ToString, dropDown_SchoolDegree.ToString, txt_Name.ToString, txt_HighSchool.ToString);
这是错误:
'CCharpApp.RegistrationClass.setValues(string,string,string,string,string,string,string,string,string,string,string,string)' 的最佳重载方法匹配有一些无效参数。
【问题讨论】:
这就是为什么你不应该有这么多参数的函数。 这个方法需要一些TLC。 【参考方案1】:当dynamic
变量作为参数传递给方法时,也会发生这种情况。编译器编译没有错误,可能有执行错误。
【讨论】:
是的,谢谢分享,马丁。 (动态对象,动态变量) 我发生了类似的错误,在我的情况下类型是 var【参考方案2】:txt_Name.ToString
解析为引用ToString
方法的方法组。它不调用ToString
。为此,您需要写txt_Name.ToString()
。话虽如此,您也不想这样做。 TextBox
的 ToString
方法不返回控件的文本。 Text
属性是你获取文本的方式,所以你想写:txt_Name.Text
。
最后,你应该避免使用参数太多的函数。当您遇到有很多争论时看到的错误时,尝试确定哪里出了问题会变得更加困难;有很多方法可以关闭它。相反,RegistrationClass
应该简单地具有每个这些值的属性,然后调用者可以单独设置每个属性。这将更容易使用。
【讨论】:
当传递方法组而不是字符串时,应用程序如何编译? @Loreno 它...不...这就是 OP 发布生成的编译器错误的原因。以上是关于C# 匹配的最佳重载方法...有一些无效参数的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助 'string.endswith(string)' 的最佳重载方法匹配有一些无效参数