2010-09-10 17 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

相关问题