我有一个基类和许多子类.在每个子类中,我使用对象A - 因此我将它放在基类中.因此,使用Object BI的子类的一半不会将B放在基类中.我希望我的基类包含尽可能多的功能,因此我希望基类中的方法能够"做某事"如果定义了对象B. 那有意义吗?
我可能会从错误的角度看待这个问题,我希望你能引导我朝着正确的方向前进.如果我没有充分解释这个问题,请告诉我
我试图将对象B放在基类中,但我不希望每个子类都能够使用对象B.
abstract class BaseClass
{
public Object A { get; set; }
protected virtual void SomeMethod()
{
if (!(A is null))
{
//Do thing with A
//This works fine
}
if (!(B is null))
{
//Do thing with B
//This doesnt work - But I want to it work
}
}
}
class ChildClass : BaseClass
{
public Object B { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是从您的基类派生另一个类,向其添加B属性和相关功能,并使所有共享此属性和类的类从该类派生而不是直接从基类派生.
像这样的东西:
abstract class BaseClassB : BaseClass
{
public object B {get;set;}
protected override void SomeMethod()
{
base.SomeMethod();
if (B != null)
{
//Do thing with B
//
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |