簡體   English   中英

C#:如何從基類屬性中導出new屬性的值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM