gpt4 book ai didi

C#基础多态问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:23 25 4
gpt4 key购买 nike

我不确定这是否真的是一个“多态性”问题,但无论如何......所以我有一个抽象类和从它继承的其他 2 个类。

基类中的一些代码有一个变量,该变量在扩展基类的类之间会有所不同。

最好的方法是什么?覆盖“获取”方法?稍微更改架构以将函数从基类调用到将传递值的扩展类...

这是一个例子(它不会编译,只是一个关于我如何做的小例子):

public abstract class BaseAbstract class {

... some code ....

// Here "listName" would change depending on the extending class
protected List<Items> getAllItems(String listName) {

Web.getList(listName);

... some code ...

}

protected abstract List<Items> getAllItems();

}

public class NewClass : BaseAbstract {
protected override void getAllItems() {
return getAllItems("ListNameOfNewClass");
}
}

我就是这样做的,但是在我看来,维护起来并不是很清晰和容易。

欢迎任何想法或评论!

最佳答案

我可能会选择这样的东西:

public abstract class Base
{
protected abstract string ListName { get; }
public List<Item> GetItems()
{
return Web.GetList(ListName);
}
}

public class Child : Base
{
protected override string ListName
{
get { return "MyListName"; }
}
}

关于C#基础多态问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1213196/

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