Вход на сайт
Немножко вне рутины...
701 просмотров
Перейти к просмотру всей ветки
Немножко вне рутины...
</p><blockquote style=""> using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; namespace A { class A { StreamWriter sw = null; public StreamWriter Sw { get { if(sw == null) { // get from class where instantiated/specified. } return sw; } set { sw = value; } } } class B1 : A { String b1 = "B1"; public void GetResult() { Sw.Write(b1); B2 b2 = new B2(); b2.GetResult(); } } class B2 : A { String b2 = "B2"; public void GetResult() { Sw.Write(b2); } } class Program { static void Main(string[] args) { using (StreamWriter sw = new StreamWriter("Data.dat")) { B1 b1 = new B1(); b1.Sw = sw; b1.GetResult(); } } } } </blockquote><p>
Что имеем? Имеем один базовый класс А и несчетное множество производных B*.
Существенно - классы B* между собой НЕ взаимодействуют - нет пересылки данных или передачи параметров, но один класс может инстанцировать другой и вызывать методы другого.
Классы B* выполняют какие-то действия (какие - не суть важно) и помещают результат в stream. Вид stream'а и что именно туда скидывается меня не интересует.
Меня интересует - можно ли в приведенном коде обеспечить чтобы B1 & B2 использовали один и тот же stream?
Чтобы было не слишком легко - несколько Б*шек будут работать параллельно - одним стреамом обойтись не получится - мне нужен именно доступ к тому где он задаn...