2013-03-23 83 views
-1

好,所以这个问题已经解决了,但所有的解决方案真的只能在简单的程序中工作,我希望找到一个更有效的方法来做到这一点。所以让我们假设我有这样的代码孩子的构造函数

public class Parent 
{ 
    int one; 
    int two; 
    public Parent(int A, int B) 
    { 
     one = A; 
     two = B; 
    } 
} 
public class Child : Parent 
{ 
    int three; 
    int four; 
    public Child(int C, int D) 
    { 
     three = C; 
     four = D; 
    } 
} 

确定这样的孩子有所有的家长变量以及所有新的变量(它诠释一个和两个,以及三,四)。当我创建一个子对象

Child myChild = new Child(3,4); 

我只能够把在孩子的构造规定的两个值,我真的需要设置所有四个变量值(这两个从父和两名儿童)。这个唯一的解决办法,我发现是沿

public class Child : Parent 
{ 
    int three; 
    int four; 
    public Child(int A, int B, int C, int D) : base(A, B) 
    { 
     three = C; 
     four = D; 
    } 
} 

但我负责的几十个孩子的类和大约30父变量,因此上面的解决方案变得非常大线的东西和做家长的任何变化必须在每个子类中手动更改变量。是否有一种简单的方法让父母的构造函数接近儿童构造函数或者比上面提出的更高效的其他解决方案?

+2

你是什么意思“几十个孩子班级和大约30个父变量”?你似乎不了解继承是如何工作的。 – wRAR 2013-03-23 11:01:53

+1

当你到达这一点时,你应该考虑修改你的班级结构。 – briantyler 2013-03-23 11:02:01

+0

将像'int three;'这样的字段更改为像这样的属性:'int three {get;保护组; }'。然后你可以将min设置为子构造函数。 – 2013-03-23 11:05:01

回答

0

制作等领域的公共,去除构造函数,定义任何成员的数量,申报喜欢你的课:

public class Parent { 
    public int one; 
    public int two; 
} 

public class Child: Parent { 
    public int three; 
    public int four; 
} 

和实例它像

var child= 
    new Child { 
     one=1, 
     two=2, 
     three=3, 
     four=4 
    }; 
+0

我没有看到任何改进。 – wRAR 2013-03-23 11:24:03

+0

@wRAR:改进? – 2013-03-23 11:25:34

+0

与原始代码相比的改进。 – wRAR 2013-03-23 11:33:56

相关问题