【发布时间】:2014-08-04 18:16:33
【问题描述】:
我有这段代码:
public class Time2
{
private int hour;
private int minute;
private int second;
public Time2(int h = 0, int m = 0, int s = 0)
{
SetTime(h, m, s);
}
public Time2(Time2 time)
: this(time.hour, time.Minute, time.Second) { }
public void SetTime(int h, int m, int s)
{
Hour = h;
Minute = m;
Second = s;
}
除了这部分,我什么都明白了:
public Time2(Time2 time)
: this(time.hour, time.Minute, time.Second) { }
你能告诉我这个构造函数是如何工作的吗? “this”关键字的风格和工作对我来说非常陌生。谢谢。
【问题讨论】:
-
当一个类声明多个(非静态)构造函数时,我们有一个重载的例子。在这种情况下,构造函数重载之一可以使用您提到的语法 chain 另一个。链接的构造函数的主体(在您的示例中为
Time2(int, int, int))首先运行,然后链接构造函数的主体(此处为Time2(Time2))运行(在您的示例中该主体为空{ })。
标签: c# constructor