![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Создание объектов неизвестных подклассов в C#: аналог "class of" оператора из DelphiDelphi , Компоненты и Классы , КлассыВопрос, который стоит перед разработчиками, при переходе с Delphi на C#, заключается в поиске аналогов конструкций, которые используются в Delphi, но отсутствуют в C# напрямую. Одной из таких конструкций является использование "class of" оператора для создания объектов неизвестных подклассов. В C# такой механизм не предусмотрен, но существует несколько способов, которые позволяют достичь аналогичного результата. Описание проблемыВ Delphi для создания объекта неопределенного производного класса используется оператор "class of". Например, если у нас есть базовый класс
Разработчики, переходящие на C#, сталкиваются с отсутствием подобного механизма и ищут способы его реализации. Альтернативный ответВ C# нет прямого аналога "class of" оператора из Delphi, но существуют альтернативные подходы, которые позволяют создать объект неизвестного класса. Одним из предложенных способов является использование делегатов, которые возвращают новый экземпляр объекта. Это позволяет написать чистый и понятный код. Подтвержденный ответДля создания объекта в C# можно использовать тип и метод
Для инициализации объекта через переменную типа
Однако, в данном примере имеется недосказанность: как передать параметры в конструктор? Ответ на этот вопрос: используйте метод
Пример кода с параметрами конструктораПредположим, у нас есть класс
Для создания объекта
ЗаключениеВ C# нет прямого аналога "class of" оператора из Delphi, но с помощью методов Вопрос связан с переходом разработчиков с Delphi на C# и поиском аналогов конструкций, таких как 'class of' оператор в Delphi, для создания объектов неизвестных подклассов в C#. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |