VB.NET: Intellisense для элементов, объявленных как «Объект» - PullRequest
0 голосов
/ 10 октября 2010

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

Возможно, что сообщения удаляются из очереди и обрабатываются, но поскольку тип сообщения различаетсяIntellisense не показывает свойства или методы классов.

Как найти, как заставить Intellisense работать?

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Вам потребуется предоставить общий базовый класс или интерфейс, которые разделяют эти различные классы сообщений.Таким образом, вместо очереди объектов у вас будет очередь MessageBase или IMessage.Методы и свойства, к которым вы хотите получить доступ, должны быть определены в базе / интерфейсе.Затем Intellisense будет показывать эти свойства и методы (но не дополнительные свойства / методы, которые вы определяете в каждом классе).

0 голосов
/ 10 октября 2010

В .NET Framework есть два класса Queue, разница в том, что они были выпущены в разное время - один новее. Используйте строго типизированную очередь (Of T) , показанную во втором элементе списка ниже, чтобы получить Intellisense и иметь строго типизированный экземпляр, который можно легко программировать ...

Пример кода

Dim numbers As New Queue(Of String)

Два класса очереди:

  1. System.Collections. Очередь

    • Intellisense показывает объект (вероятно, это ваша проблема) .
    • из .NET 1.0
    • приводит к слабо типизированным элементам Object
  2. System.Collections.Generic. Очередь (Of T)

    • Intellisense покажет строго тип T членов (используйте это вместо)
    • из .NET 2.0
    • приводит к строго типизированным (Of T) элементам, в которых вы указываете T

Используйте ссылки для просмотра документации, переведите страницу документа в режим синтаксиса VB и прокрутите вниз до раздела Примеры , чтобы увидеть его использование.


Другое

Если вы используете Очередь, отличную от упомянутых выше, вы всегда можете конвертировать / приводить объекты в очередь обратно в их строго типизированные значения, используя механизмы, подобные следующим:

...