类的 多个构造函数 问题

money_live 2008-09-17 09:31:17
class Class1 {
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;

Class1() { }

Class1(int i1, int i2) {
i1 = i1;
i2 = i2;
}

Class1(int i1, int i2, int i3, int i4) {
i1 = i1;
i2 = i2;
i3 = i3;
i4 = i4;
}

Class1(int i1, int i2, int i3, int i4, int i5, int i6) {
i1 = i1;
i2 = i2;
i3 = i3;
i4 = i4;
i5 = i5;
i6 = i6;
}
}
我记得可以调用本身的构造函数来赋值.不用这么麻烦的额!!!
...全文
453 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
money_live 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Crazy_Xia 的回复:]
class Class1 {
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;

Class1() { }

Class1(int i1, int i2) {
i1 = i1;
i2 = i2;
}

Class1(int i1, int i2, int i3, int i4) : this(i1, i2){
i3 = i3;
i4 = i4;
}

Class1(int i1, int i2, int i3, int i4, int i5, int i6): this(i1,i2,i3,i4) {
i5 = i5;
i6 = i6;
}
}
[/Quote]

对找的就是这个。
我姓区不姓区 2008-09-17
  • 打赏
  • 举报
回复

class Class1
{
private int i1;
private int i2;
private int i3;
private int i4;
private int i5;
private int i6;

public Class1() { }

public Class1(int i1, int i2)
{
this.i1 = i1;
this.i2 = i2;
}

public Class1(int i1, int i2, int i3, int i4)
: this(i1, i2)
{
this.i3 = i3;
this.i4 = i4;
}

public Class1(int i1, int i2, int i3, int i4, int i5, int i6)
: this(i1, i2, i3, i4)
{
this.i5 = i5;
this.i6 = i6;
}
}

ProjectDD 2008-09-17
  • 打赏
  • 举报
回复
C#3.0可以通过自动属性(或一般的属性)来直接赋值这样

public class C{
public int I1{get;set;}
public int I2{get;set;}
}

public class App{
C c;
public void Set(){
this.c=new C{
I1=1,I2=2
};//这种方示可代替构造函数,这样就不必象你那写多个不同的构造函数版本了.例如下面这一行
是只初始化I1的情况;
//this.c=new C{I1=1};
}
}
这种方案,的执行发生在默认构造函数调用之后;以上那种方式是简写方式,完全写法如下


//...
public void Set(){
this.c=new C(){I1=1,I2=2};
}
//如果C中存在 public C(int i){this.I2=i;}那么也可以这样
public void Set(){
this.c=new C(22){I1=1,I2=2};
}

不论那种情况均为先调用其构造函数,然后再调用本赋值;更多内容请参见MSDN C#3.0新增
功能中的有关描述;
  • 打赏
  • 举报
回复
这位朋友学C#的热情高..加油...
wjq 2008-09-17
  • 打赏
  • 举报
回复
C#貌似不行,你可以另外写一个函数,构造函数中通过那个函数来赋值.
ChinaZYH 2008-09-17
  • 打赏
  • 举报
回复
再加个构造函数:
Class1(Class1 obj)
{
this.i1= obj.i1;
this.i2= obj.i2;
// ......
}
houhou_houhou 2008-09-17
  • 打赏
  • 举报
回复
有默认构造函数和重载构造函数之分啊
实例化的时候按需要来调用其中一个构造函数
Crazy_Xia 2008-09-17
  • 打赏
  • 举报
回复
class Class1 {
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;

Class1() { }

Class1(int i1, int i2) {
i1 = i1;
i2 = i2;
}

Class1(int i1, int i2, int i3, int i4) : this(i1, i2){
i3 = i3;
i4 = i4;
}

Class1(int i1, int i2, int i3, int i4, int i5, int i6): this(i1,i2,i3,i4) {
i5 = i5;
i6 = i6;
}
}
spark_cao 2008-09-17
  • 打赏
  • 举报
回复
什么意思,不明白
lzhoney 2008-09-17
  • 打赏
  • 举报
回复
什么意思额?说详细点额.

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧