我最近看到的是看起来像这样一个C#构造函数...C#构造函数
public Class foo
{
public foo() : this(new bar())
{}
}
任何人可以帮我解读? bar()适合在哪里?
如果你可以通过在适当位置插入bar()来帮助我完成课程,以便我可以编译/调试并查看整个图片。
在此先感谢。
尼科斯
我最近看到的是看起来像这样一个C#构造函数...C#构造函数
public Class foo
{
public foo() : this(new bar())
{}
}
任何人可以帮我解读? bar()适合在哪里?
如果你可以通过在适当位置插入bar()来帮助我完成课程,以便我可以编译/调试并查看整个图片。
在此先感谢。
尼科斯
Foo类应包含另一个构造,采用一个酒吧对象作为参数。
public class foo
{
public foo()
: this(new bar())
{ }
public foo(bar b)
{
}
}
public class bar
{
}
会有阶级富第二构造函数签名这样
public foo(bar Bar)
{
... do something with bar here;
}
这是一种常见的技术,以确保所有建设者经过一个单点,所以你只需要改变这一点(也可能有其他用途,但我不知道他们的)。
我已经看到了它在使用默认参数,如事情:
class Rational {
private:
long numerator;
long denominator;
public:
void Rational (long n, long d) {
numerator = n;
denominator = d;
}
void Rational (long n): Rational (n,1) {}
void Rational (void): Rational (0,1) {}
void Rational (String s): Rational (atoi(s),1) {}
}
熊的语法,我没有一个编译器随时进入这里,但基本意图是集中尽可能多代码尽可能在第一个构造函数中。
所以,如果,例如,您可以添加一个检查,以确保分母大于零或者分子和分母使用的是最大公约数的方法降低,它只有有在代码中的一个点发生。
有趣。将代码放入空括号中会发生什么情况? – Svante 2009-04-20 11:12:32