无法访问继承类中的属性

时间:2015-08-14 12:49:47

标签: c#

我有一个支持项目。有这样的控制层次结构:

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)>

1 个答案:

答案 0 :(得分:1)

简化,就像你有一个班级Foo

public class Foo
{
}

然后创建一个列表:

var fooList = new List<Foo>();

现在Foo 中,您想要访问fooList.Count。你不能。 Foo不知道它被普遍使用。