2014-01-22 3 views
0

У меня есть класс A и класс B, который должен работать с классом C.Обмен данными между несколькими экземплярами

Я хочу, чтобы класс A и B работать на одном экземпляре C таким образом, что изменения, сделанные в A к C будет влиять на C объект, используемый B.

Единственный способ, который я вижу для реализации этого, - использовать шаблон наблюдателя, но мне любопытно узнать, есть ли какое-либо простое решение этой проблемы.

+0

Если пройти тот же экземпляр, вам не нужно ничего делать, потому что это будет тот же экземпляр. –

+0

I жесткие значения не были переданы по ссылке, согласно http://www.yoda.arachsys.com/csharp/parameters.html –

+0

класс C не является значением типа –

ответ

5

Если предположить, что заявления, подобные следующие настройки и sharedC в конструкторах:

class C{} 
class A { private C sharedC; } 
class B { private C sharedC; } 

Вы бы использовать один экземпляр C и переходят к экземплярам A и B, которые нуждаются в общей копии.

var c = new C(); 

var a = new A(c); 
var b = new B(c); 

Один из самых простых способов (при условии C является class, не struct)

+0

+1. Обратите внимание, что этот код предполагает, что «класс C» означает «класс C» :) –

+0

Попытка этого банкомата, у меня было неправильное представление о том, что то, что вы предлагаете, невозможно в C#. –

Смежные вопросы