我目前正在做一些类编码,并想知道我的项目出了什么问题?
class ContactPerson
{
string name;
ContactNo telNo;
public ContactPerson(string in_Name, ContactNo in_No)
{
name = in_Name;
telNo = new ContactNo();
}
public string getName()
{
return name;
}
public ContactNo getContactInfo()
{
return telNo;
}
public void setName(string in_Name)
{
name = in_Name;
}
public void setContactInfo (ContactNo in_No)
{
telNo = in_No;
}
}
}
class ContactNo
{
string contactType;
string contactNo;
public void setContactType(string in_Type)
{
contactType = in_Type;
}
public string getContactType()
{
return contactType;
}
public void setContactNo(string in_No)
{
contactNo = in_No;
}
public string getContactNo()
{
return contactNo;
}
}
}
class Program
{
static void Main(string[] args)
{
ContactNo telNo;
telNo = new ContactNo("Mobile No: ", 95656565);
ContactPerson myFriend;
myFriend = new ContactPerson("Fred Smith", telNo);
string strName;
strName = myFriend.getName();
Console.WriteLine(" " + strName);
ContactNo outContact;
outContact = myFriend.getContactInfo();
outContact.getContactType();
Console.WriteLine(outContact);
outContact.getContactNo();
Console.WriteLine(outContact);
Console.ReadLine();
}
}
}
在课程班上 “telNo = new ContactNo(”Mobile No:“,95656565);” theres错误说不包含带有2个参数的构造函数 我可以知道为什么吗?
答案 0 :(得分:6)
那是因为你没有在ContactNo类中包含两个参数的构造函数,正如错误所示。看看课程,你会发现那里没有构造函数。但是,你在ContactPerson类中有一个。
这一行:telNo = new ContactNo("Mobile No: ", 95656565);
正在调用ContactNo的构造函数,它接受两个参数:一个字符串和一个int。您没有设置为当前执行此操作的构造函数,而这正是您的错误所在。您可以通过添加
public ContactNo(string s, int n){
//initializations
}
或那种性质的东西。或者,如果您使用字符串作为数字(看起来像),请将int n
替换为string s2
或您想要调用的任何内容。
答案 1 :(得分:1)
因为你没有联系没有带2个参数的构造函数。我猜你和其他有2个参数的课程混淆了
public ContactPerson(string in_Name, ContactNo in_No)
从您的代码中看起来您必须将其添加到您的班级 ContactNo
public ContactNo(string type, string umber)
{
contactType = type;
contactNo = number;
}
答案 2 :(得分:-1)
public ContactNo(string type, string umber)
{
contactType = type;
contactNo = number;
}
在ContactNo Class中添加此内容。
您收到错误的原因是因为没有带两个参数的构造函数。
答案 3 :(得分:-1)
将以下内容添加到您的ContactNo类:
public ContactNo(string inType, string inNo)
{
contactType = inType;
contactNo = inNo;
}
答案 4 :(得分:-1)
你没有构造函数来获取2个参数。在ContactNo类中添加此构造函数
public ContactNo(string contactType, string contactNo)
{
this.contactType = contactType;
this.contactNo = contactNo;
}
答案 5 :(得分:-1)
您需要声明ContactNo
类的构造函数。类只提供没有参数的默认构造函数。
您需要的构造函数如下:
public ContactNo(string contactType, string contactNo) {
this.contactType = contactType;
this.contactNo = contactNo;
}
答案 6 :(得分:-1)
由于您传递的是string
和int
,我认为您要创建新的ContactPerson
,而不是ContactNo
。但是,如果您真的想要ContactNo
,请添加构造函数:
类ContactNo { public string ContactType {get;组; } public string ContactNo {get;组; }
public ContactNo(string type, string no)
{
ContactType = type;
ContactNo = no;
}
}
或(使用属性)将其初始化为:
ContactNo contact = { ContactType = "The type", ContactNo = "The No" };