读书人

解释一下代码,该怎么处理

发布时间: 2012-02-01 16:58:19 作者: rapoo

解释一下代码
class t
{
int a;
int b;

}

public class a:b
{
public a(t x,t y ):base(x.a,x.b)
{


}


}
这是什么意思?

[解决办法]
public a(t x,t y ):base(x.a,x.b)


a(t x,t y )表示类a的构造函数,base(x.a,x.b)表示在执行a的构造函数的时候同时调用基类(就是class b)的构造函数

[解决办法]
楼上说的对
[解决办法]
是问 base 吧

在构造函数后加 : base() 就是调用基类的构造函数。实例化类时,先调用基类的构造函数,然后调用派生类的构造函数。必须调用基类的构造函数,有些时候没有这种调用也能编译,是因为编译器帮我们调用了基类的默认构造函数,就是无参的那个。
[解决办法]
tomjohn123() ( ) 信誉:100 2007-09-10 10:16:54 得分: 0


不这么写不也同样要调用基类的构造函数吗?


--------------------
如果不用base(x.a,x.b),他就只能调用默认构造函数,也就是不能带参数
具体的代码含义,1楼解决的很清楚了



[解决办法]
public a(t x,t y ):base(x.a,x.b)

等同于

public a(t x,t y ){
base(x.a,x.b);
}
[解决办法]
它表示一个构造器链

public a(t x,t y ):base(x.a,x.b){
}

public a(t x,t y ){
base(x.a,x.b);
}
在执行过程上有所不同,在这里a(t x,t y ) 为一个初始化器,只读属性的初始化只能在a()
中初始化.
[解决办法]
调用基类的构造函数!
public a(t x,t y ):this()
{
...
}
public a()
{
}
这样是调用自己的无参函数,一般用于初始化类,而带参构造函数用于实现特定的功能!
调用基类的构造函数如你代码中所示,我楼上的也是!

读书人网 >C#

热点推荐