[英]C#: how can I derive the value of new attribute from the base class attribute?
我想向treenode對象添加一個屬性。
我希望新的屬性值(即鍵)派生自Treenode.Fullpath。
我該如何實施?
class ItemNode:TreeNode
{
internal string key { get; set; } = base.FullPath.split("\\")[1]; //Error
}
在初始化字段時無法計算該值。 太早了。 該對象仍在構造中,並且編譯器無法確定基本部分處於有效狀態,因此不允許訪問其數據。
我建議您自己實現該屬性,以便您可以控制邏輯何時執行。 然后,您可以隨時加載它。 例如,一個簡單的延遲加載可以像這樣工作:
class ItemNode:TreeNode
{
internal private string _key = null;
internal public string Key
{
get
{
if (_key == null) _key = base.FullPath.split("\\")[1];
return _key;
}
set
{
_key = value;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.