Интерфейс определяет два метода: Beginlnit и Endlnit

конструктор visual studio знает этот

Ни один из них не принимает параметров и ничего не возвращает; это просто сигнальные методы, сообщающие реализующему классу, когда инициализация начинается и когда заканчивается с точки зрения некоторого потребляющего кода. Конструктор Visual Studio знает этот интерфейс и ищет его в любом компоненте или элементе управления, который вы перетаскиваете в рабочее пространство конструктора. Если он видит, что добавленный вами компонент реализует этот интерфейс, то добавляет вызовы Beginlnit И End — Init, Охватывающие в генерируемом конструктором коде установку любых свойств этого компонента. Это гарантирует, что порядок, в котором конструктор устанавливает эти свойства, не будет играть роли, если он соответствующим образом сигнализирует о том, что он начал устанавливать свойства, и о том, что он закончил их установку. Следующий код является сокращенной версией метода Обратите внимание, что в начале фазы инициализации код вызывает Beginlnit Каждого компонента , Затем устанавливает свойства, и в конце вызывает Endlnit. Это позволяет элементу управления или компоненту отложить действия с устанавливаемыми свойствами, пока не будет вызван Endlnit, Благодаря чему можно избежать трудностей с установкой взаимосвязанных свойств в правильном порядке показывает простую реализацию ISupportlnitialize В классе, который содержит коллекцию строк. В показательных целях класс выполняет инициализацию, кэшируя любые значения, устанавливаемые в свойстве StringCoiiection, Пока инициализация не будет завершена. Для этого класс делает следующее. Он реализует интерфейс ISupportlnitialize И его методы Beginlnit И Endlnit. Определяются элементы-переменные для хранения первичной коллекции строк, которую инкапсулирует класс, флага, указывающего, что класс инициализируется, и другой коллекции строк для хранения временной копии значения, которое устанавливается для инкапсулируемой коллекции в процессе инициализации. Set-блок свойства StringCollection Проверяет флаг инициализации, и если производится инициализация экземпляра класса, помещает любые устанавливаемые для свойства значения во временную копию. Если класс не инициализируется, значение просто записывается в элемент-переменную первичной коллекции строк. Реализация Beginlnit Устанавливает флаг, чтобы сообщить классу о том, что он находится в режиме инициализации.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *