我有一个支持项目。有这样的控制层次结构:
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中访问。在这种情况下,我如何作为参数传递或在WindowControl类对象中将Token值设置为属性?
请仔细查看:我正在尝试访问不在MyWindowControl中的Token属性,但在 WindowControl
中再一次。在代码的当前结构中,我需要在WindowControl类中拥有Token的副本。而且我想问有没有办法正确地做到这一点或任何解决方法?
我不知道,也许:
public class MyWindowControl : MyControl<WindowControl(this.Token)>
答案 0 :(得分:1)
简化,就像你有一个班级Foo
:
public class Foo
{
}
然后创建一个列表:
var fooList = new List<Foo>();
现在在Foo
中,您想要访问fooList.Count
。你不能。 Foo
不知道它被普遍使用。