2015-05-06 54 views
1

我有一个类继承另一个类的类列表。我希望能够访问父变量,而不必使用引用(使事情更具可读性)。我可以在没有参考的情况下访问父变量吗?

public class MyCode : OtherCode 
    { 
     public string label; 
     public MyCode() 
     { 
      label = "somestring"; 
      colour = 5; 
      Console.WriteLine("colour is: " + colour); // this is ok 
      List<particle> parts = new List<particle>(); 
      parts.Add(new particle()); 
     } 

     public class particle //I'd like this class to have access to the parent variables 
     { 
      public particle() 
      { 
       Console.WriteLine("The colour is: " + colour); // can this be accessed without using a parent reference? 
       //Console.WriteLine("The label is: " + label); // unaccessable 
       Console.ReadLine(); 
      } 
     } 
    } 

    public class OtherCode 
    { 
     public int colour = 1; 
     public OtherCode() 
     { 
      //I didn't do it 
     } 
    } 

是否有可能继承父变量这种方式,所以我可以用手把它“是”在粒子的方法呢?

为这个令人困惑的例子道歉,我想我因为在这种情况下可以使用继承而松了口气。 我想知道是否可以让嵌套类(粒子)有权访问标签和颜色在施工中传递参考文献并在全国各地使用Parent.variable

+0

'粒子'不是'咖啡',因此它不应该有'风味'或任何一个概念,要么做一个界面,要么让'杯子'有'味道'(尽管我不是确定一个杯子是美味的) – Sayse

+1

你正在使用继承错误,就像@Sayse提到的(继承意味着“is-a”,咖啡肯定是地狱不是杯子),你的问题还不清楚。解释你想看到发生的事情,而不是“让更多的可读性”。 – CodeCaster

+0

对不起,但我认为你有些事情倒退了。 “咖啡:杯子”并不是说没有杯子就没有咖啡。因为没有杯子就可以喝咖啡。你说这个的方式说咖啡是一种特定的杯子。它不是。 Cappucino是一种咖啡,一种杯子可以翻译成“Cappucion:Coffee”和“Mug:Cup”。 所以我认为你应该解决这个问题,并在整个OOP阅读,然后你的问题的答案会来找你:) –

回答

1

这是我的规则,以确定何时使用继承。

尝试描述问题并确定句子中的动词。

例如,这里的正确句子是什么?

因此,你不能使用继承,因为懒惰或任何其他。每个概念都有其用例,避免变量/财产声明不是继承的目标。

+0

有道理,我希望避免必须通过父项并在任何地方都有Parent.var。 – Catnaps909

+0

@ Catnaps909我相信你应该创建一个新的编程范例! OOP将无法正常工作:P –

+0

哈哈,是的,我还在学习。我刚刚发现拥有父母是不可读的。在所有事情的前面,想知道是否有更简单的方法。 – Catnaps909

相关问题