首页 新闻 会员 周边

一个构造函数想调用两个构造函数

0
悬赏园豆:5 [已关闭问题] 关闭于 2013-05-11 12:15
public class A
{
    int x,bool y;   
    public A(int X)
    {
        x=X;
    }

    public A(bool Y)
    {
         y=Y;
     }           
}

现在想写一个构造函数,它有两个参数int X和bool Y,想让这个构造函数调用上述两个构造函数,如下的解决方式不予考虑:

public A(int X, bool Y):this(X)

{

    y=Y;

}

有没有比较漂亮的解决办法

C#
飞~翔的主页 飞~翔 | 初学一级 | 园豆:149
提问于:2013-05-10 15:47
< >
分享
所有回答(3)
1

这种情况下个人认为应该用少参的调用多参的,比如:

 1 public class A
 2 {
 3     int x; bool y;
 4     public A(int X): this(X,true)
 5     {
 6     }
 7 
 8     public A(bool Y):this(0,Y)
 9     {
10     }
11 
12     public A(int X, bool Y)
13     {
14         y = Y;
15         x = X;
16     }
17 }
yyutudou | 园豆:997 (小虾三级) | 2013-05-10 16:36

有道理。但是有没有一个构造函数调用两个构造函数的这样的实现方法呢?

支持(0) 反对(0) 飞~翔 | 园豆:149 (初学一级) | 2013-05-10 16:50

@TT天使的眼泪: 那也只能这样了,

 1 public class A
 2 {
 3     int x; bool y; string z;
 4     public A(int X)
 5     {
 6         x = X;
 7     }
 8 
 9     public A(int X, bool Y) : this(0)
10     {
11         Y = y;
12     }
13 
14     public A(int X, bool Y, string Z)  : this(0, Y)
15     {
16         z = Z;
17     }
18 }
支持(0) 反对(0) yyutudou | 园豆:997 (小虾三级) | 2013-05-10 16:56
0

这个是你简化之后的问题吧。。简化成int x和bool y的话就太简单了,比如可以用可选参数:

pubic A(int x = 1, int y = 2)
{
     
}

这样你只需要一个构造函数就可以了。

水牛刀刀 | 园豆:6350 (大侠五级) | 2013-05-10 16:37
1

构造函数表面是无返回的可实际是返回了该类的对象,所以不能执行2次.不然会返回2个对象

56180825 | 园豆:1756 (小虾三级) | 2013-05-11 11:10

这么想很有道理

支持(0) 反对(0) 飞~翔 | 园豆:149 (初学一级) | 2013-05-11 12:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册