2010-09-10 28 views
1

所以可以說我有1類如何保持對類屬性的引用更新?

public Class1 
{ 
    Class2 myClass2; 

    public Class1() 
    { 
     myClass2 = new Class2(); 
    } 

    public SomeObject anObject 
    { 
     get; 
     set; 
    } 
} 

和Class2中

public Class2 
{ 
    private SomeObject _myObject; 
    public SomeObject MyObject 
    { 
     get{ return _myObject;} 
     set{ _myObject = value; } 
    } 

    public void DoStuffToObject() 
    { 
     _myObject.Property = newValue; 
    } 
} 

我怎能_myObject在Class2中一樣anObject Class1中如果我設置anObject相等不同的對象。因此,如果我在Class1中更改anObject,那麼_myObject是Class2也會發生變化?這是一個很好的解決方案:

(Class1中)

private SomeObject _anObject; 
    public SomeObject anObject 
    { 
     get{ return _anObject; } 
     set{ _anObject = value; 
      if(myClass2 != null) 
      myClass2.MyObject = value; 
     } 

    } 

這似乎有點多餘,但感覺你不能按引用傳遞的屬性我有點爲難。

感謝

+1

這種設計粗劣。每個可以有多個實例。 myClass2.MyObject是對成員屬性的非法引用。你的課程應該按照不需要依賴其他課程內部的方式進行分解。 – recursive 2010-09-10 23:18:01

回答

1
public Class1 
{ 
    private Class2 myClass2; 

    public Class1() 
    { 
     myClass2 = new Class2(); 
    } 

    public SomeObject anObject 
    { 
     get { return myClass2.MyObject; } 
     set { myClass2.MyObject = value; } 
    } 
} 
+0

有道理。 :) – Justin 2010-09-10 23:35:37

相關問題