通过类接口访问类的属性
本文关键字:属性 访问 接口 | 更新日期: 2023-09-27 18:00:03
为什么我不能通过基类的接口(ItestClass)访问基类(testClass)属性?我创建接口是为了避免实际的Control(winforms/wpf)属性在第三个类(newClass)中可见。如果这不可能,还有更好的方法吗?
public class testClass : Control, ItestClass
{
public int Property1 { set; get; }
public int Property2 { set; get; }
public testClass() { }
}
public interface ItestClass
{
int Property1 { get; set; }
int Property2 { get; set; }
}
public class newClass : ItestClass
{
public newClass()
{
// Why are the following statements are not possible?
Property1 = 1;
// OR
this.Property1 = 1;
}
}
接口实际上并没有实现属性——您仍然需要在实现类中定义它们:
public class newClass : ItestClass
{
int Property1 { get; set; }
int Property2 { get; set; }
// ...
}
编辑
C#不支持多重继承,所以不能让testClass
同时继承Control
和另一个具体类。不过,你也可以用作文代替。例如:
public interface ItestClassProps
{
public ItestClass TestClassProps { get; set; }
}
public class testClass : Control, ItestClassProps
{
public ItestClass TestClassProps { set; get; }
public testClass() { }
}