我正在尝试创建链式构造函数但是,我不擅长它并需要一些帮助! 我在其中一个构造函数中收到一条消息,告诉我没有构造函数接受两个参数。 ?
这是什么意思?我需要它来处理从另一个类发送的3个字符串,这导致我进入第二个问题,这是我不能从我的其他班级调用这个...我已经尝试了一切,我只是不能得到它:(我觉得有一些关于施工人员的遗漏,但我确信有人可以用正确的方式指出我!!请在这里使用任何和所有的帮助!!!我已经阅读了关于这个主题的C#书籍并且他们没有多大帮助我有谷歌和井有很多例子,但没有一个真正对我有意义,因为我认为我的代码会起作用。
这是我的类,我有需要将变量发送到的构造函数。
public class Phone
{
//Private Phone
private string m_persPhone;
//Other Phone
private string m_otherPhone;
//Work Phone
private string m_privatePhone;
public Phone()
{
}
public Phone(string personalPhone)
: this(personalPhone, string.Empty) //<---Problem is HERE...
{
}
public Phone(string personalPhone, string otherPhone, string privatePhone)
{
m_persPhone = personalPhone;
m_otherPhone = otherPhone;
m_privatePhone = privatePhone;
}
public string personalPhone
{
//Personal Phone
get { return m_persPhone; }
set { m_persPhone = value; }
}
public string otherPhone
{
//Other Phone
get { return m_otherPhone; }
set { m_otherPhone = value; }
}
public string privatePhone
{
//Private Phone
get { return m_privatePhone; }
set { m_privatePhone = value; }
}
public string GetToStringItemsHeadings
{
get { return string.Format("{0,-20} {1, -20} {2, -20}", "Personal Phone", "Other Phone", "Private Phone"); }
}
public override string ToString()
{
string strOutPhone = string.Format("{0,-20} {1, -20} {2, -20}", m_persPhone, m_otherPhone, m_privatePhone);
return strOutPhone;
}
}
}
//此致
答案 0 :(得分:2)
此代码:
public Phone(string personalPhone)
: this(personalPhone, string.Empty)
正在寻找一个带有两个字符串参数的构造函数。
代码部分
this(personalPhone, string.Empty)
表示“查找同一个类的构造函数,该类接受我的参数列表中的两个参数(在本例中为两个字符串),然后调用该构造函数”。
但是,您没有定义一个。您可以使用带有三个字符串参数的那个,如下所示:
public Phone(string personalPhone)
: this(personalPhone, string.Empty, string.Empty)
答案 1 :(得分:2)
你有三个构造函数:
public Phone()
public Phone(string personalPhone)
: this(personalPhone, string.Empty) //<---Problem is HERE...
public Phone(string personalPhone, string otherPhone, string privatePhone)
这些都不是两个字符串,因此您会收到错误。
您可以通过传递第三个字符串来修复它:
public Phone(string personalPhone)
: this(personalPhone, string.Empty, string.Empty)
然后链接到你的最后一个构造函数。
请注意,您也可以考虑将optional arguments与单个构造函数一起使用:
public Phone(string personalPhone, string otherPhone = "", string privatePhone = "")
这可以让你消除“额外的”链式构造函数。
答案 2 :(得分:2)
这是什么意思?
究竟是什么意思。这里:
: this(personalPhone, string.Empty)
你正试图链接到一个可以接受两个字符串的构造函数。但这些是您定义的构造函数签名:
public Phone()
public Phone(string personalPhone)
public Phone(string personalPhone, string otherPhone, string privatePhone)
您期望连接哪些?这些都没有两个参数。
我怀疑你想要:
: this(personalPhone, string.Empty, string.Empty)
答案 3 :(得分:1)
你的类只有3个构造函数,没有两个参数。我认为你的意思是基类初始化看起来像这样:
: this(personalPhone, string.Empty, string.Empty)
(注意它链到3参数构造函数)。