不能访问继承类中的属性
本文关键字:属性 访问 继承 不能 | 更新日期: 2023-09-27 18:07:53
我得到了一个支持项目。有这样的控制层次:
public class MyWindowControl : MyControl<WindowControl>
MyControl
有这样的层次结构:
public abstract class MyControl<T> : MyElement<T> where T : Control, new()
我正在做WindowControl
修复,并陷入一种情况,即我需要的属性在MyControl
内部,称为- Token
。
我需要得到它,但是没有办法我看到。有没有一种方法,也许我可以把它作为参数传递给构造函数?但如何?
下面是一个例子:
public class MyWindowControl : MyControl<WindowControl>
{
public MyWindowControl()
{
}
}
public abstract class MyControl<T> : MyElement<T> where T : Control, new()
{
public MyControl() :
this(new T())
{
}
public MyControl(T Element) :
base(Element)
{
}
}
public abstract class MyElement<T> : MyScreenElement where T : FrameworkElement, new()
{
public MyElement() :
this(new T())
{
}
public MyElement(T Element)
{
}
}
public abstract class MyScreenElement
{
public MyClass Token { get; protected set; }
}
所以问题是我可以访问令牌内部的MyControl,但不是在WindowControl。在这种情况下,我如何将Token值作为参数传递或设置为属性在WindowControl类对象内?
请仔细看:我试图访问Token属性不是在MyWindowControl,而是在WindowControl
。在代码的当前结构中,我需要在WindowControl类中有Token的副本。我想问的是,有什么方法可以正确地做到这一点吗?
我不知道,也许:
public class MyWindowControl : MyControl<WindowControl(this.Token)>
简而言之,就像你有一个类Foo
:
public class Foo
{
}
然后创建一个列表:
var fooList = new List<Foo>();
现在Foo
中的,您想访问fooList.Count
。你不能。Foo
不知道它被普遍使用。