Как отслеживать и манипулировать переменной, используя несколько классов - c # - PullRequest
0 голосов
/ 07 марта 2012

Я строю своего рода программу, которая генерирует случайный список слов в соответствии с базой данных. Я создал класс, который занимается выбором и обработкой слов (функция случайного выбора, функция подключения к базе данных и т. Д.)

У меня есть 3 переменные, которые указывают последние 3 выбранных слова. как использовать функцию на форме 1 (нажатие кнопки 1), чтобы манипулировать теми же 3 переменными, не создавая их с нуля каждый раз (что происходит сейчас ...)

Чтобы прояснить себя: Мне действительно нужно знать, как отслеживать переменную между несколькими классами.

Возможно, я неправильно использовал целые классы ... Теперь я стараюсь понять это. Большое спасибо, Barak.

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Ваши два варианта, как я вижу это:

1) экземпляр класса, который содержит те переменные, которые могут быть переданы

Вы можете захотетьиспользуйте шаблон singleton для этого класса, если вы хотите убедиться, что существует только один из них.

2) Статический класс со статическими членами, хранящими эту информацию.

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

Также я хотел бы предложить вам рассмотреть коллекцию, содержащую ваши слова, а не три отдельные переменные.Конечно, это будет зависеть от вашей реализации, поэтому я упомяну об этом только в том случае, если вы об этом не подумали, и я не говорю, что вам определенно следует это делать.:)

0 голосов
/ 07 марта 2012

Я бы не стал использовать статические или синглтоны только для этой цели - они не подходят для простых объектно-ориентированных сценариев.

Инкапсулируйте переменные состояния в классе, который вы сначала создаете, а затем передаете по ссылке в логику формы и / или выборки данных.

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

Если вы реализуете «переменные» как свойства в классе состояний, вы можете использовать события для уведомления других частей вашего кода об изменении состояния слов.

Рассмотрим также четкое определение возможных взаимодействий (интерфейсов) в классе состояний. Один аспект, кажется, состоит в том, чтобы добавить слово, другой, чтобы извлечь статистику, основанную на добавленных словах. Государственный класс может вместить все это и обеспечить хорошее место для будущих расширений.

Старайтесь мыслить с точки зрения методов / свойств общедоступного интерфейса, оставляя «переменные» (то есть поля, такие как счетчики или коллекции) закрытыми.

Я также согласен с тем, что ваш пост должен быть улучшен с помощью фрагментов реального кода - помогите нам помочь вам.

И я надеюсь, что ваш код не используется для создания спам-писем / сообщений ...: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...