所以,我是 C# 和对象编程的新手,我遇到了一个小问题。
在基类中我有这个(它基本上将字符串转换为 double[]:
namespace PersonalSpendings
{
class Money
{
private decimal money { get; set; }
public Money(string str)
{
//conversion from string to double[]
int j = 0;
string[] str2 = str.Split(new char[] { ' ', ',', '.' },
StringSplitOptions.RemoveEmptyEntries) ;
double[] strFinal = { '0', '0', '0' };
foreach(string i in str2)
{
strFinal[j] = double.Parse(i);
j++;
}
j--;
}
}
}
我不明白为什么它不允许我创建另一个构造函数(具有不同的参数):
namespace PersonalSpendings
{
class Income: Money
{
public Income(double amount, string name)
{
}
public Income(string str) : base(str)
{
}
}
}
第一个构造函数有问题:(双倍数量,字符串名称)。
我不能创建特定于派生类的构造函数吗?
是的,您可以,但是由于您的基类只有一个带参数的构造函数,您需要从派生类中的任何构造函数调用它。
public Income(double amount, string name) : base(/* something */)
{
}
public Income(string str) : base(str)
{
}
我是一名优秀的程序员,十分优秀!