2010-09-10 5 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 равным другому объекту. Итак, если я изменяю anObject в Class1 _myObject, также меняется класс2? Это хорошее решение:

(в Class1)

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

    } 

Это кажется немного постороннее, но смысл вы не можете передать свойство по ссылке я немного тупик.

Благодаря

+1

Этот дизайн кажется схематичны. Их может быть несколько экземпляров. myClass2.MyObject является незаконной ссылкой на свойство участника. Ваши классы должны быть разбиты таким образом, что им не нужно полагаться на внутренности других классов. – recursive

ответ

1
public Class1 
{ 
    private Class2 myClass2; 

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

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

Делает смысл. :) – Justin