【发布时间】:2018-12-04 01:14:50
【问题描述】:
我正在做一些课程作业,但我不知道如何在从类扩展后重写方法。我正在尝试使用 new 关键字覆盖它,但仍会调用基本方法。
public class TrainList : ObservableCollection<Train>
{
...
public new void Add(Train train)
{
Console.WriteLine("Contains ID: " + ContainsId(train.Id).ToString());
if (!ContainsId(train.Id)) base.Add(train);
}
...
}
视图模型:
public class AddTrain
{
// Possible values for selectable items
public ObservableCollection<Station> Stations => Facades.StationList.Instance;
public ObservableCollection<Train> Trains => Facades.TrainList.Instance;
public void InsertTrain()
{
....
Train newTrain = trainBuilder.build();
Console.WriteLine("Created an object");
Trains.Add(newTrain);
}
}
当 C# 中有泛型时,如何覆盖扩展类中的方法?
【问题讨论】:
-
阅读这个关于 New vs Override 关键字的问题。除非将基方法声明为
abstract(在抽象类上)或virtual,否则您不能覆盖它们。 -
另外,我建议在您的场景中解释“它不起作用”的实际含义。
-
@John 谢谢你回答了我的问题。我将对其进行编辑,以便其他人可以看到并尝试澄清。
标签: c# generics collections