Глобальные переменные между классами

141
26 октября 2017, 06:36

Есть 3 класса

class A
{
    List<double> tables = new List<double>();
    B b = new B();
}
class B
{
    C c = new C();
}
class C
{
}

Необходимо воспользоваться в классе C полями класса A. Как это возможно сделать? Вне классов создавать переменные нельзя, дальше уже namespace

Answer 1

Автор, если тебе действительно нужны "глобальные переменные", то в .NET это static-поля и свойства.

class A
{
    static List<double> tables = new List<double>();
    static B b = new B();
}
class B
{
    C c = new C();
}
class C
{
  void Do()
  {
    var b = A.b;
    var table = A.tables;
    ...
  }
}

Но если тебе нужно просто разделить общий ресурс между несколькими компонентами, то ты либо передаёшь один в конструктор или метод другого, делая поля/свойства публичными, либо выносишь их в отдельный класс-контекст, который спускаешь в конструктор/метод каждого класса, который их использует. Основы ООП.

READ ALSO
Почему результат Graphics.FillPath(path) отличается от Graphics.DrawPolygon(Pens.Black, path.PathPoints)

Почему результат Graphics.FillPath(path) отличается от Graphics.DrawPolygon(Pens.Black, path.PathPoints)

Всем привет мне нужно преобразовть текст в коллекцию точекИспользую для этого GraphicsPath но не получается ожидаемый результат

255
В каком языке ошибка: Javascript или C# [требует правки]

В каком языке ошибка: Javascript или C# [требует правки]

Есть сайт для покупка автомобилейВот ссылка: http://www

180
C# NPOI ошибка Extern sheet is part of LinkTable при создании объекта HSSFWorkbook из FileStream

C# NPOI ошибка Extern sheet is part of LinkTable при создании объекта HSSFWorkbook из FileStream

Код ниже работает с ошибкой: "Extern sheet is part of LinkTable"Использую NPOI 2

419
Рисовалка + 3d модель на js

Рисовалка + 3d модель на js

Здравствуйте! Хотелось бы спросить советаЗадача такова: у нас есть 3d модель, допустим цилиндр, и развёртка этой модели

393