Я думаю, что я пропустил базовую концепцию в объектно-ориентированном программировании.Передача нескольких полей в качестве параметров методам в другом классе или передача `this` и создание полей
Предположим, что несколько методов в классе B хотят получить доступ к нескольким полям, объявленным в классе A. Должен ли я передать все поля в качестве параметров методам, начиная с класса A и вниз по потенциально длинному дереву вызовов в классе B? classBInstance.StartOfLongCallTree(p1, p2, p3)
Или, должен ли я публиковать поля и передавать this
методам. Таким образом, мне нужно передать только один параметр: classBInstance.StartOfLongCallTree(this)
.
Или, должен ли я создавать поля/свойства статические и получать к ним доступ без каких-либо параметров? Это применимо только в том случае, если поля, разумеется, не должны меняться. classBInstance.StartOfLongCallTree()
. ClassA.p1
и т. Д., Для доступа к статическим полям.
Пример CancellationToken для отмены циклов в потоках. У меня есть длинное дерево вызовов в моей программе, которое проходит через два класса/потоки. Я могу либо передать токен вниз по дереву вызовов, либо я могу сделать его общедоступным статическим свойством, чтобы вообще не пропускать его. На какой я должен пойти?
Большое спасибо.
Вы не проходят занятия, вы передаете объекты, которые являются экземплярами класса – Andrew
Вы можете использовать интерфейс для всех представителей общественности и передать 'this'. Я бы не рекомендуется создавать методы/члены в статике класса B, если у вас нет веских оснований для этого. Можете ли вы добавить примерный пример того, что вы пробовали до сих пор. – jacqijvv
@ Андрю Я не могу найти, где я сказал, что я проходил класс. Я исправлю это, если у меня будет эта опечатка. Я передаю «это», что является экземпляром. – Anders