Как фреймворк .net создается в классах. (Vb.net)
-
05-07-2019 - |
Вопрос
Если я посмотрю на некоторые классы в платформе, используя отражатель, то увижу, что формы и пользовательские элементы управления стали частными и вложены в родительский класс.
Например, у меня есть элемент управления, который использует всплывающую форму, специфичную для этого элемента управления. На данный момент я делаю доступным всплывающую форму друга. Если бы я хотел сделать это в виде фреймворка, я бы сделал его приватным и вложил в класс управления. Однако, если я сделаю это, я больше не смогу использовать ide для разработки формы и получаю ошибки при попытке компиляции. Итак, у меня есть 2 вопроса:
(1) Microsoft что-то делает в последнюю минуту, чтобы вкладывать все в частную жизнь?
(2) Является ли их путь предпочтительным, или я должен придерживаться своих друзей-аксессоров?
Решение
Вложенная форма лучше, потому что она обеспечивает правильную инкапсуляцию и означает, что окончательный элемент управления окажется в одном хорошем аккуратном пакете для распространения. Если ни один из них не вызывает беспокойства, продолжайте делать это по-своему. Но если вы хотите хотя бы попробовать вложить класс, вы можете сделать что-то вроде этого:
<Ол> *. designer.vb
или *. designer.cs
для вашей первой формы в конструктор для вашей второй формы. В основном это будет просто большая копия / вставка.