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# 告诉我"修饰符抽象对字段无效。请尝试改用属性。我似乎不了解大局。我只想要一个占位符/对基父类中列表的引用。这是怎么做到的?
你的代码有几个问题。这将修复它们:
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
。