我正在按照以下说明进行作业(并非完整,仅仅是我努力理解的部分):
包含两个构造函数。第一个不带参数,并将savingsBalance变量设置为零,并通过调用带有0和空字符串的第二个(即两个参数)构造函数将savingsAccountName设置为空字符串。第二个构造函数接受一个double参数(savingsBalance)和一个字符串参数(savingsAccountName),并通过分别调用setSavingsBalance方法和setsavingsAccountName方法设置savingsBalance。
这是我到目前为止所做的,但它没有正常工作,所以我确定我完全错过了它。任何人都可以提供帮助并告诉我哪里出错了吗?
public SavingsAccount()
{
savingsBalance = 0;
SavingsAccount baseAccount = new SavingsAccount(0, "");
}
public SavingsAccount(double balance, string name)
{
balance = getSavingsBalance();
name = getSavingsAccountName();
}
答案 0 :(得分:1)
使用this
关键字。
public SavingsAccount():this(0,"")
{
}
public SavingsAccount(double balance, string name)
{
this.balance = balance;
this.name = name;
}
答案 1 :(得分:1)
您没有设置类的字段或属性。您只是更改传递给构造函数的参数的值。
public SavingsAccount(double balance, string name)
{
this.savingsBalance = balance;
this.name = name;
}
然后你可以从无参数构造函数
中调用它public SavingsAccount(): this(0 , "")
{ }
答案 2 :(得分:0)
您基本上需要 cascade constructors
从其他人那里调用一个构造函数。
public SavingsAccount() : this(0 , "")
{
}
当然,您需要从其他构造函数设置类级别字段:
public SavingsAccount(double balance, string name)
{
this.balance = balance;
this.name = name;
}
答案 3 :(得分:0)
只有在构造函数中的第一个操作时,才能从另一个构造函数中调用它。这是通过在方法签名中进行调用来强制执行的。
public SomeConstructor():this("foo"){
}
public SomeConstructor(string someParam){
}