不包含带2个参数的构造函数?

use*_*010 -3 c# class

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

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个参数的构造函数我可能知道为什么?

Ric*_*ner 7

那是因为你没有在ContactNo类中包含两个参数的构造函数,正如错误所示.看看课程,你会发现那里没有构造函数.但是,你在ContactPerson类中有一个.

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

public ContactNo(string s, int n){
   //initializations
}
Run Code Online (Sandbox Code Playgroud)

或者那种性质的东西.或者,如果您使用的是数字的字符串(它看起来像),更换int nstring s2或任何你想调用它.