gpt4 book ai didi

c# - 通过类接口(interface)访问类的属性

转载 作者:太空宇宙 更新时间:2023-11-03 20:06:12 24 4
gpt4 key购买 nike

为什么我不能通过它的接口(interface)(ItestClass)访问基类(testClass)的属性?我创建了接口(interface)以避免实际的控件 (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;
}
}

最佳答案

接口(interface)实际上并没有实现属性——您仍然需要在实现类中定义它们:

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() { }
}

关于c# - 通过类接口(interface)访问类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23297620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com