C#:抽象列表<字符串>

本文关键字:字符串 列表 抽象 | 更新日期: 2023-09-27 18:30:27

C#:我想用一个适用于字符串列表的方法编写一个抽象类。该列表尚未在此类中实现。然后我想编写另一个从抽象类继承并实现字符串列表的类。

class AbstractClass 
{
    protected abstract List<string> myList; // To be implemented in a child class
    void ShowList()
    {
        foreach (string member in myList) 
        {
            Console.WriteLine(member);
        }
    }
}
class HelloWorld : AbstractClass
{
    new private List<String> myList = new List<string>()
    {
        "Hello", "World"
    }; 
}

现在 C# 告诉我"修饰符抽象对字段无效。请尝试改用属性。我似乎不了解大局。我只想要一个占位符/对基父类中列表的引用。这是怎么做到的?

C#:抽象列表<字符串>

你的代码有几个问题。这将修复它们:

abstract class AbstractClass
{
    protected abstract List<string> MyList { get; set; } // To be implemented in a child class
    void ShowList()
    {
        foreach (string member in MyList)
        {
            Console.WriteLine(member);
        }
    }
}
class HelloWorld : AbstractClass
{
    protected override List<String> MyList { get; set; } = new List<string>()
    {
        "Hello", "World"
    };
}

问题:

  • 抽象类应该使用 abstract class 声明;
  • 如果要在派生类中重写其功能,则需要使用属性或方法;
  • 您使用的是new关键字。如果要在派生类中派生某些内容,请不要这样做!请改用override