-2

我目前正在做一些类编码,想知道我的项目出了什么问题?

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); ”中出现错误说不包含带2个参数的构造函数我可以知道为什么吗?

4

7 回答 7

8

那将是因为您没有包含 ContactNo 类中的两个参数的构造函数,正如错误所暗示的那样。看看这个类,你会注意到那里没有构造函数。不过,您确实在 ContactPerson 类中有一个。

这一行:telNo = new ContactNo("Mobile No: ", 95656565); 正在为 ContactNo 调用一个构造函数,该构造函数接受两个参数:一个字符串和一个 int。您目前没有设置来执行此操作的构造函数,这就是您的错误所在。您可以通过添加创建一个

public ContactNo(string s, int n){
   //initializations
}

或类似的东西。或者,如果您使用字符串作为数字(看起来像),请替换int nstring s2或您希望调用的任何内容。

于 2013-07-25T18:30:20.953 回答
1

因为您没有联系没有带有 2 个参数的构造函数。我猜你把它和你的其他有 2 个参数的类混淆了

public ContactPerson(string in_Name, ContactNo in_No)

从您的代码看来,您必须将其添加到您的班级ContactNo

 public ContactNo(string type, string umber)
{
    contactType = type;
    contactNo = number;
}
于 2013-07-25T18:31:34.150 回答
0

由于您正在传递 astring并且int我认为您想创建一个新的ContactPerson,而不是ContactNo. 但是,如果您真的想要ContactNo,请添加构造函数:

class ContactNo
{
    public string ContactType { get; set; }
    public string ContactNo { get; set; }

    public ContactNo(string type, string no)
    {
        ContactType = type;
        ContactNo = no;
    }
}

或者(使用属性)像这样初始化它:

ContactNo contact = { ContactType = "The type", ContactNo = "The No" };
于 2013-07-25T18:35:18.567 回答
-1
public ContactNo(string type, string umber)
{
        contactType = type;
        contactNo = number;
}

将此添加到您的 ContactNo 类中。

您收到错误的原因是因为没有带有两个参数的构造函数。

于 2013-07-25T18:32:07.887 回答
-1

将以下内容添加到您的 ContactNo 类:

public ContactNo(string inType, string inNo)
{
   contactType = inType;
   contactNo = inNo;
}
于 2013-07-25T18:32:46.760 回答
-1

您没有构造函数来获取 2 个参数。在您的 ContactNo 类中添加此构造函数

public ContactNo(string contactType, string contactNo)
{
    this.contactType = contactType;
    this.contactNo = contactNo;
}
于 2013-07-25T18:32:49.097 回答
-1

您需要为您的ContactNo类声明构造函数。类只提供一个没有参数的默认构造函数。

您需要的构造函数如下:

public ContactNo(string contactType, string contactNo) {
    this.contactType = contactType;
    this.contactNo = contactNo;
}
于 2013-07-25T18:34:20.453 回答