C#: Я хочу написать абстрактный класс с помощью метода, который работает в списке строк. Список еще не будет реализован в этом классе. Затем я хочу написать еще один класс, наследующий от абстрактного класса и реализующий список строк.C#: Abstract List <string>
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# говорит мне «Аннотация тега-модификатора недействительна в полях. Попробуйте вместо этого использовать свойство». Кажется, у меня нет большой картины. Я просто хочу заполнить/ссылку на список в моем базовом родительском классе. Как это делается?
Проверьте эту ссылку: http://stackoverflow.com/questions/7490870/virtual-abstract-fields-in-c-sharp –
Поле считается приватным. Это означает, что вы не увидите его в классе, который наследуется от вашего базового класса, поэтому он не сможет реализовать свою версию поля. Другое дело - поле предназначено только для хранения данных, и вы не можете «реализовать» их. Попробуйте виртуальное/абстрактное свойство. –
Зачем его нужно «внедрять» в ваш производный класс. Вы определяете поле в абстрактном классе и затем инициализируете его в производном классе. – PaulF