2014-11-12 2 views
1

GUI 기반 응용 프로그램 (양식)을 만들고 다음 오류가 발생했습니다.모듈의 클래스에서 공용 액세스로 변수를 선언 할 수 없습니다.

첫째, 내가 모듈 물론

Module test_mod 

    Public Structure sub_struct 
     Public test_int() As Integer 
     Public Sub foo() 
      ReDim test_int(3) 
     End Sub 
    End Structure 

    Public Structure main_struct 
     Public test_aaa As sub_struct 
    End Structure 

End Module 

에 다음과 같은 물건을 선언하고, 내 실제 코드는 더 길고 더 복잡 이것보다하지만,이 코드 조각은 완벽한 예가 될 것입니다.

은 그럼 내가 메인 클래스

Public Class Form1 
    Public test_this_struct As New test_mod.main_struct 
    'do something here 
End class 

내 의도가 만드는이 test_mod를 선언 메인 클래스가 짧고 깔끔한 될 것 같은 것을 (여기에 표시되지 않은) 다른 모듈에 의해 접근 test_this_struct. 그러나 다음과 같이 계속 불평합니다. test_this_struct 유형 test_mod.main_structform1을 통해 프로젝트 외부에 노출 할 수 없습니다.

여기에 Private이 표시되지 않고 new, redim 및 "struct in struct"를 제거하는 데 지겨워졌지만 작동하지 않았습니다.

MSDN에서 article 및 관련 콘텐츠를 찾았지만 실제로 도움이되지 않았습니다.

+1

내가 제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

2

이 시도 :

Public Module test_mod 
    Public Structure sub_struct 
     Public test_int() As Integer 

     Public Sub foo() 
      ReDim test_int(3) 
     End Sub 
    End Structure 

    Public Structure main_struct 
     Public test_aaa As sub_struct 
    End Structure 
End Module 

출처 : http://msdn.microsoft.com/en-us/library/aaxss7da.aspx

3

기본적으로 modules and classes are Friend (조립품에서만 볼 수 있음).

귀하의 양식은 명시 적으로 Public이며, 양식은 test_mod.main_struct의 가시성을 확장하는 세계에 노출됩니다.

모듈을 Public으로 선언하십시오.

관련 문제