gpt4 book ai didi

c#: BaseClass 虚方法使用在子类中定义的对象

转载 作者:行者123 更新时间:2023-11-30 14:21:36 26 4
gpt4 key购买 nike

我有一个基类和许多子类。在每个子类中,我都使用对象 A - 因此我将它放在基类中。在一半的子类中,我使用对象 B,因此我没有将 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; }
}

最佳答案

最简单的解决方案是从您的基类派生另一个类,向其添加 B 属性和相关功能,并让所有共享该属性和功能的类派生自该类直接来自基类。

像这样:

abstract class BaseClassB : BaseClass
{
public object B {get;set;}

protected override void SomeMethod()
{
base.SomeMethod();
if (B != null)
{
//Do thing with B
//
}
}
}

关于c#: BaseClass 虚方法使用在子类中定义的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com