-4
我有一個支持項目。有這樣的控制層級:無法訪問繼承類中的屬性
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類對象內的令牌值屬性?
請仔細看:我想不能訪問的MyWindowControl令牌屬性,但在WindowControl
又一次。在代碼的當前結構中,我需要在WindowControl類中擁有一個令牌副本。而且我問有沒有辦法做到這一點或任何解決方法?
我不知道,也許:
public class MyWindowControl : MyControl<WindowControl(this.Token)>
如果可能,請提供更多詳細信息和代碼示例。 'WindowControl'具有'Token'屬性,你只需要獲取它,或者你需要將該屬性添加到類定義中嗎?你在說什麼構造函數?或者你是否試圖從'WindowControl'訪問'MyControl'的屬性? –
'MyControl'中的'Token'是否是私人的? –
Charleh
如果'Token'屬性不是'private',那麼你應該可以從'MyWindowControl'沒有問題的地方訪問它。如果它是私有的,那麼請考慮一下爲什麼你需要它,或者讓它受到保護' – Jcl