2013-11-26 3 views
0

사용자 인증이 필요한 프로그램이 있습니다. 이제 공용 문자열에 logonname을 저장하지만 사용자가 사용하기로 선택한 언어, 이름, 물건 등에 대한 정보를 사용하고 싶습니다. 다른 Public String을 만들 수는 있지만 그 아이디어는 마음에 들지 않습니다. 내 목표는 사용자 이름과 비밀번호를 입력 할 때 사용자에 대한 일부 데이터를 저장하는 것입니다. 나는 이런 식으로 뭔가 만들려면 : 나는 구조가 트릭을 할 것입니다 생각Visual Studio 2008에서 전역 변수 만들기

user.logonname 
user.language 

를, 그래서이 만든 :

Public Structure user 
    Public logonname As String 
    Public languagetype As String 
End Structure 

을하지만 난 단지 이런 식으로 액세스 할 수 있습니다

Dim user1 as new user 

하지만 공용 구조체를 덮어 쓸 수 없으며 인스턴스를 만들면 다른 양식에도 필요한 정보가 없습니다. VB6에서 이와 비슷한 것을 보았습니다. 그러나이 프로그램은이 변수 유형을 포함하는 DLL을 사용하고 있었으며 실제로 이해할 수 없으며 더 나은 방법이 있다고 확신합니다. 누군가 나를 도와 줄 수 있습니까? 미리 감사드립니다.

+0

왜 구조가 아닌 클래스? scope (access)는'user1'이 선언 된 곳에 의존 할 것입니다. – Plutonix

+0

클래스를 사용할 수 있지만 변수 유형이나 사용할 수있는 클래스가 있기를 바랍니다. – Joe88

+0

문제는 클래스, 구조체 또는 변수가 아닙니다. 즉, 'scope'입니다. user1이 전역, 모듈 수준, 클래스 수준 또는 프로 시저 수준 범위 (가시성)인지 여부를 결정합니다. – Plutonix

답변

1

Plutonix에게 감사 드려서. 누군가가 그것을 필요로한다면, 나는 이렇게했다 :

Public Module GeneralModule 
    Public Structure user 
     Public logonname As String 
     Public languagetype As String 
    End Structure 

    Public guser As New user 
End Module 

그리고 나는 원하는 곳 어디에서나 guser에 접근 할 수있다.

예 :

Private Function login 
    'Some other code 
    guser.logonname = Me.userid.text 
    guser.languagetype = Me.ComboBoxLanguage.Text 
End Function 
1

아마도 프로젝트에서 도움이 될 것입니다. 행운을 빕니다! 다음과 같이

Public Type EmployeeName 

FirstName As String 

MidInit As String 

LastName As String 

End Type 



Public Type EmployeeRecord 

udtEmpName As EmployeeName 

dtmHireDate As Date 

sngHourlyRate As Single 

dblQuarterlyEarnings(1 To 4) As Double 

End Type 



Dim udtEmpRec As EmployeeRecord 

당신은 EmployeeName 필드를 참조 할 것 :

udtEmpRec.udtEmpName.FirstName 

udtEmpRec.udtEmpName.MidInit 

udtEmpRec.udtEmpName.LastName 
0

이 모듈을 만들고 해당 모듈에서 공용 변수를 선언합니다. 그 변수는 전체 프로젝트에서 사용할 수 있습니다.

관련 문제