为什么Intellisense不适用于默认公共财产(有时)?

时间:2015-01-23 13:34:42

标签: vb.net visual-studio intellisense

我的代码中的默认属性存在问题,至少在某种程度上,可以使用以下代码重现:

Public Class Dawg
    Public Enum DawgEnum
        Demo1
        Demo2
    End Enum
    Default Public Property DawgProp(x As DawgEnum) As String
        Get
            Return "whatever"
        End Get
        Set(value As String)
            '...
        End Set
    End Property

    Public Sub DawgSub()
        Me(DawgEnum.Demo1) = "Intellisense works here..."
    End Sub
End Class

Public Class DawgTest
    Public Sub SomeSub()
        Dim d As New Dawg
        d(Dawg.DawgEnum.Demo1) = "And here as well..."

    End Sub

    Public Shared Sub AnotherSub()
        Dim d As New Dawg

        d(Dawg.DawgEnum.Demo1) = "No help for finding 'Dawg.DawgEnum.Demo1' here..."

        d.DawgProp(Dawg.DawgEnum.Demo1) = "...Intellisense helped here..."

    End Sub
End Class

问题在于" 共享 Sub AnotherSub"当我开始输入" d(" Intellisense不提供该属性的可用枚举值列表。

我在其他类中也存在问题,这些类在结构上与类相同" DawgTest" (一个简单的公共课),它不工作(在一个共同的子或不在共同的子) - 虽然在上面的测试中没有问题。

当然,这不是主要问题,因为代码编译得很好,我总是可以使用显式属性,但它非常烦人和令人困惑,只是想知道,如果这是设计?如果是这样的话:为什么?如果没有:我该如何解决?

我无法肯定地说,如果这个问题一直存在,或者如果它突然冒出来......

对此问题的任何想法 - 甚至5美分或更少 - 将不胜感激:o)

0 个答案:

没有答案