提供界面
public interface baseInterface {
IList<double> listProperty { get; set; }
}
按照下面的示例,有什么方法可以将具有属性的接口实现为属性类型的子类?
public class newClass : baseInterface
{
public List<double> listProperty { get; set; }
}
答案 0 :(得分:5)
您可以查看两种方法。
(1)您必须使用显式实现才能使其工作:
public interface BaseInterface
{
IList<double> ListProperty { get; set; }
}
public class NewClass : BaseInterface
{
public List<double> ListProperty { get; set; }
IList<double> BaseInterface.ListProperty
{
get => this.ListProperty;
set => this.ListProperty = value.ToList();
}
}
(2)使用泛型允许使用子类:
public interface BaseInterface<L, T> where L : IList<T>
{
L ListProperty { get; set; }
}
public class NewClass : BaseInterface<List<double>, double>
{
public List<double> ListProperty { get; set; }
}
这两种方法都可以使您在public List<double> ListProperty { get; set; }
中有一个NewClass
。
答案 1 :(得分:1)
您需要使接口通用。
SELECT Mac
FROM TableABC AS T
WHERE State = 5
AND NOT EXISTS ( SELECT * FROM TableABC T2
WHERE T2.Mac = T.Mac
AND T2.State = 4 )