-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 クラスに 2 つの引数を含むコンストラクターがないためです。クラスを見てみると、そこにコンストラクターがないことに気付くでしょう。ただし、ContactPerson クラスには 1 つありません。

この行:telNo = new ContactNo("Mobile No: ", 95656565); 文字列と int の 2 つの引数を取る ContactNo のコンストラクターを呼び出しています。現在、これを行うように設定されているコンストラクターがありません。それがエラーの原因です。追加することで作成できます

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

またはその性質の何か。または、番号に文字列を使用している場合 (そのように見えます)、またはint nstring s2任意の名前に置き換えます。

于 2013-07-25T18:30:20.953 に答える