gpt4 book ai didi

c# - 覆盖嵌套类函数或使用委托(delegate)?**

转载 作者:行者123 更新时间:2023-11-30 15:08:15 25 4
gpt4 key购买 nike

我有一个基类,里面有一个嵌套类型。外部(基本)类型中有一个函数,稍后会被其子项覆盖。事实上,这个函数属于 OOinner type 但我仍然需要它,被 subtypes 覆盖基类.

我应该将此函数用作 inner typecallback 还是只是将其移动到 inner type 中,让我们的 子类型 从那里覆盖它?

编辑:添加示例代码

class A
{
protected void func() { /* do something */ }
class B { /**/ }
}

// OR

class A
{
class B
{
protected void func() { /* do something */ }
}
}

// Then

class C : A
{
override func() { /**/ }
}

最佳答案

我的建议是为内部类型函数创建一个委托(delegate),它由基类的构造函数启动:

internal class BaseClass
{
public BaseClass(Action myAction)
{
this.innerType = new InnerType(myAction);
}

public BaseClass()
{
// When no function delegate is supplied, InnerType should default to
// using its own implementation of the specific function
this.innerType = new InnerType();
}
}

如您所见,派生类型可以使用 :base (overridenAction) 调用基类构造函数,它们可以在其中为最内层类型提供自己的函数实现。当然,您没有义务使用 Action,而是您想要的任何委托(delegate)。

关于c# - 覆盖嵌套类函数或使用委托(delegate)?**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5774284/

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