我有一个带
的基类 public abstract class BaseClass
{
ICollection<int> Numbers {get;set;}
}
有没有办法得到以下结果?
public abstract class SubClass : BaseClass
{
override ObservableCollection<int> Numbers {get;set;}
}
所以子类有一个observablecollection或者我可以实现一个设计模式吗?
答案 0 :(得分:6)
泛型可以帮助您实现类似的行为:
Controller.prototype.testPromise = function(callback){
return new Promise(function(resolve, reject) {
var count = 0;
for (i = 0; i < 500000000; i++) {
count++;
}
if(count) {
resolve(count);
} else {
reject(count);
}
});
}
答案 1 :(得分:0)
你不能像那样覆盖它。
一种解决方案可能是创建一个具有不同名称的新属性,如下所示:
public abstract class SubClass : BaseClass
{
public ObservableCollection<int> ObservableNumbers => (ObservableCollection<int>)Numbers;
}
或者如下:(如果你真的需要能够设置它)
public abstract class SubClass : BaseClass
{
public ObservableCollection<int> ObservableNumbers
{
get { return (ObservableCollection<int>)Numbers; }
set { Numbers = value; }
}
}
不要忘记将Numbers
财产公开或内部化!
答案 2 :(得分:0)
您可以尝试下面添加“新”关键字
public abstract class BaseClass
{
public virtual ICollection<int> Numbers { get; set; }
}
public abstract class SubClass : BaseClass
{
public new ObservableCollection<int> Numbers { get; set; }
}