Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Немножко вне рутины...

19.05.17 14:30
​Немножко вне рутины...
 
Murr патриот
Murr

Немножко вне рутины...

</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...

 

Перейти на