Как я могу получить доступ к общим членам в другом классе

У меня есть следующий открытый класс с общими членами:

Public Module Modul1

Sub Main()
    Rectangle.Height = 3
End Sub

Public Class Rectangle
    Public Shared Length As Double
    Public Shared Height As Double

    Public Shared Function CalculatePerimeter#()
        Return (Length + Height) * 2
    End Function

    Public Shared Function CalcaulteArea#()
        Return Length * Height
    End Function
End Class
End Module

теперь я добавил новый класс в vs (новая вкладка) и попытался получить доступ к классу Rectange

Public Class test
Rectangle.
End Class

Но интеллект мне ничего не дает. Почему я не могу получить доступ к классу? Это общедоступно, и члены являются общими.


person ruedi    schedule 11.10.2013    source источник


Ответы (2)


Потому что вы находитесь в регионе, где вы можете объявлять поля, свойства или тела методов. Здесь вы не можете получить доступ к методам, свойствам или полям других классов.

Это будет работать:

Public Class test
    ' Rectangle.He...  <-- does not work because you can only use accessors or Dim etc.
    Dim height As Double = Rectangle.Height
End Class

Почему intellisense должен давать вам варианты, которые все равно не скомпилируются?

person Tim Schmelter    schedule 11.10.2013
comment
спасибо, что решили и показали мне, как я могу объявить это в этом пространстве! - person ruedi; 11.10.2013
comment
Чтобы быть более точным, вы можете получить к ним доступ, как показано здесь. Вы не можете УСТАНОВИТЬ их в разделе объявлений вашего кода, но вы можете прочитать их значения. - person Steve; 11.10.2013
comment
@Steve: Да, ты прав, конечно. Я должен был назвать это intellisense, не покажет вам, так как это все, о чем вопрос. Так что intellisense покажет это, если это имеет смысл. В начале строки нет смысла обращаться к свойству/полю другого класса, оно не скомпилируется. - person Tim Schmelter; 11.10.2013

Пытаться

Modull.Rectangle

Я думаю, это должно сработать.

person Alexandre    schedule 11.10.2013