簡體   English   中英

C#繼承傳遞模板值

[英]C# inheritance pass down template values

我得到了一種樹繼承關系。 每個上層節點都可以視為模板值。 較低的節點具有完全相同的值和一些新的列(值的種類)。

我想知道是否有一種簡單的方法可以將這些值從較高的節點傳遞到較低的節點。

我的代碼像:

    public class rootData
    {
        public long sID;
        public string sName;
        public string title;
        public string country;

       <many....many...columns>

    };

    public class sub1 : rootData
    {
        public void load(rootData template)
        {
            this.sID= template.sID;
            this.sName= template.sName;
            this.title= template.title;
            this.country= template.country;

            <many....many...asigns>
        }
        public int sNumberA;
        public int sNumberB;
    };

我想知道:有什么寫法嗎

this.everything=template.everything

替換許多行的標志:

            this.sID= template.sID;
            this.sName= template.sName;
            this.title= template.title;
            this.country= template.country;

            <many....many...asigns>

rootData設置為sub1一個字段,並向構造函數中添加一個用於填充該字段的參數。 如果rootData中的字段主要是“啞”標簽,我將其設為struct ,以說明它只是一個簡單的數據集合,頂部幾乎沒有邏輯。

正如Erik指出的那樣,屬性可能會更好。 注意,您可以將rootData的各個字段rootData為props,並避免向其他類廣播類的詳細信息(即,它具有rootData字段)。

是否可以做的答案是要繼承還是合成。 您是否希望sub1成為rootData 如果是這樣,您將需要復制這些值。 您是否希望sub1包含rootData 如果是這樣,則可以讓sub1保留傳入的rootData的值。當然,如果這樣做,則不能將其作為單獨的rootData而不用復制這些值。

我的簡短答案是:創建一個復制值的函數。 您只需要做一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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