VB.NET:声明为'Object'的项目的Intellisense

时间:2010-10-10 01:31:35

标签: vb.net intellisense

我有一个共享队列,用于转储不同类中包含的各种消息,因此我将其类型作为Object。

问题是,消息被出列并处理,但由于消息类型不同,Intellisense不会显示类属性或方法。

如何找到Intellisense工作?

2 个答案:

答案 0 :(得分:1)

您需要提供这些不同消息类共享的公共基类或接口。因此,您将拥有MessageBaseIMessage的队列,而不是对象队列。您希望访问的方法和属性需要在基础/接口中定义。然后,Intellisense将显示这些属性和方法(但不会显示您在每个类中定义的其他属性/方法)。

答案 1 :(得分:0)

.NET Framework中有两个Queue类,区别在于它们是在不同时间发布的 - 一个是更新的。使用下面第二个列表项中显示的强类型 Queue(Of T) 来实现智能感知并拥有一个可以轻松编程的强类型实例...

代码示例

Dim numbers As New Queue(Of String)

两个队列类:

  1. System.Collections.Queue

    • 智能感知显示一个对象 (可能这是你的问题)
    • 来自.NET 1.0
    • 导致弱类型的Object元素
  2. System.Collections.Generic.Queue(Of T)

    • Intellisense将显示强类型T成员 (改用此词)
    • 来自.NET 2.0
    • 会产生强类型(Of T)元素,您可以在其中指定T
  3. 使用链接访问文档,将doc页面置于VB语法模式,然后向下滚动到示例部分以查看其用法。


    其他

    如果你使用的队列与上面提到的队列不同,你可以使用以下机制将出队对象转换/强制转换为强类型值: