2013-10-11 3 views
1

내가 공유하는 회원들과 다음과 같은 공용 클래스가 있습니다 내가 공유 멤버에 액세스 할 수 있습니다 어떻게 다른 클래스

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 

가 지금은 대 (새 탭)에 새로운 클래스를 추가하고

Rectange 클래스에 액세스하려고를
Public Class test 
Rectangle. 
End Class 

그러나 intelisence는 나에게 아무것도주지 않습니다. 왜 수업에 액세스 할 수 없습니까? 공개되며 구성원은 공유됩니다.

답변

0

필드 또는 속성 또는 메서드 본문을 선언 할 수있는 지역에 있기 때문에. 여기에서는 다른 클래스의 메서드, 속성 또는 필드에 액세스 할 수 없습니다.

이 작동합니다 :

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 

왜 인텔리해야 당신에게 어쨌든 컴파일되지 않습니다 옵션을 제공?

+0

그 공간에서 어떻게 선언 할 수 있는지 알려 주셔서 감사합니다! – ruedi

+0

더 정확하게 말하면 여기에 표시된 것처럼 액세스 할 수 있습니다. 코드의 선언 섹션에서 이들을 설정할 수는 없지만 그 값은 읽을 수 있습니다. – Steve

+0

@ 스티브 : 그래, 맞아. 나는 "intellisense는 당신에게 보여주지 않을 것"이라고 불렀어야했는데 그 이유는 모든 질문이 그랬기 때문이다. 그래서 인텔리 센스가 의미가 있다면 그것을 보여줄 것입니다. 줄의 시작 부분에서 다른 클래스의 속성/필드에 액세스하는 것은 의미가 없으므로 컴파일되지 않습니다. –

0

내가이 일을해야한다고 생각

Modull.Rectangle 

을보십시오.

+0

이것은 작동하지 않습니다. – ruedi