我目前正在做一些类编码,并想知道我的项目出了什么问题?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
}
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;
}
}
Run Code Online (Sandbox Code Playgroud)
}
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();
}
}
Run Code Online (Sandbox Code Playgroud)
}
在程序类"telNo = new ContactNo("Mobile No:",95656565);"theres错误说不包含带有2个参数的构造函数我可能知道为什么?
那是因为你没有在ContactNo类中包含两个参数的构造函数,正如错误所示.看看课程,你会发现那里没有构造函数.但是,你在ContactPerson类中有一个.
这一行:telNo = new ContactNo("Mobile No: ", 95656565);
调用ContactNo的构造函数,它接受两个参数:一个字符串和一个int.您没有设置为当前执行此操作的构造函数,而这正是您的错误所在.您可以通过添加创建一个
public ContactNo(string s, int n){
//initializations
}
Run Code Online (Sandbox Code Playgroud)
或者那种性质的东西.或者,如果您使用的是数字的字符串(它看起来像),更换int n用string s2或任何你想调用它.