2013-04-25 116 views
0

我想知道如何讓第二類的主類顯示對象(保持第二類內部)?我正在使用C#。有沒有辦法將第二類封裝到主類中?

有點像包裝。那是一件壞事?有人可以提供一個例子或鏈接?

謝謝...

+0

你是什麼意思「顯示第二類對象」? – 2013-04-25 14:17:31

+0

您可以使用內部類。 – 2013-04-25 14:17:45

+0

內部類/裝飾模式/繼承....我認爲你需要更具體地針對你的問題... – 2013-04-25 14:18:30

回答

1

這個簡單的模式是使用嵌套類,具有屬性來公開你想使公衆什麼。

public class MyClass 
{ 
    private class SubClass 
    { 
     int someValue; 
    } 

    private SubClass innerClass = new SubClass(); 

    public int SubValue 
    { 
     get { return innerClass.someValue; } 
     set { innerClass.someValue = value; } 
    } 
} 

您可以擴展這種模式有,有效,很多民營子類使用internal modifier。內部對象在同一個程序集內實質上是公共的,而在其他地方是私有的。將包裝標記爲公開,並將每個孩子標記爲內部。請注意,這需要將包裝類和所有子類放入它們自己的單獨項目(即程序集)中。您可以(也應該)在新項目中將每個類定義在其自己的文件中。

public class WrapperClass 
{ 
    private SubClass1 internalClass1 = new internalClass1(); 
    private SubClass2 internalClass2 = new internalClass2(); 

    public int SubValue1 
    { 
     get { return internalClass1.someValue; } 
     set { internalClass1.someValue = value; } 
    } 

    public int SubValue2 
    { 
     get { return internalClass2.someValue; } 
     set { internalClass2.someValue = value; } 
    } 
} 

internal class SubClass1 
{ 
    int someValue; 
} 

internal class SubClass2 
{ 
    int someValue; 
} 
+0

這可以工作,但我恐怕如果我有100班,它會導致性能或開銷。所以建議? – fletchsod 2013-04-25 14:34:29

+0

@fletchsod我不太明白。你的意思是你有100個內部類,你想在一個大的公共包裝類中主持?或者你有100對包裝/子類,只是不想花時間編碼嵌套模式? – 2013-04-25 14:46:39

+0

是的,100個單獨的類(單獨的文件0將被1個公共包裝類包裝) – fletchsod 2013-04-25 14:52:47

相關問題