문제
는 방법이 있을 결합하에서 열거형 VB.net?
해결책
내가 믿는 당신이 원하는 것은 플래그 형식 enum.
당신이 필요로 추가 특성 깃발의 맨 위에 열거한 다음 결합할 수 있습니다 열거형으로'또는'키워드를 사용합니다.
다음과 같다:
<Flags()> _
Enum CombinationEnums As Integer
HasButton = 1
TitleBar = 2
ReadOnly = 4
ETC = 8
End Enum
참고: 이 번호는 오른쪽으로 항상 두번 큰(의 힘 2)-이 필요할 수 있는 별도의 개인 플래그가 있는 설정되어 있습니다.
을 결합하여 원하는 플래그를 사용하거나 키워드:
Dim settings As CombinationEnums
settings = CombinationEnums.TitleBar Or CombinationEnums.Readonly
이 세트는 제목 표시줄 및 읽기 전용으로 enum
치를 확인하려면 설정:
If (settings And CombinationEnums.TitleBar) = CombinationEnums.TitleBar Then
Window.TitleBar = True
End If
다른 팁
사용할 수 있습니다 FlagsAttribute 을 장식하는 열거처럼 그렇게 할 것입니다 당신이 결합 Enum:
<FlagsAttribute> _
Public Enumeration SecurityRights
None = 0
Read = 1
Write = 2
Execute = 4
한 다음 호출을 다음과 같록(등 UserPriviltes):
Public Sub New ( _
options As SecurityRights _
)
New UserPrivileges(SecurityRights.Read OR SecurityRights.Execute)
그들이 효과적으로 결합 bit(수학)에서는 위의 사용자가 읽기 및 실행 모든 주위에 실시 하나에서 멋진 SecurityRights 변수입니다.
는지 확인하려면 사용자가 권한을 사용(더 비트 수학)를 확인하기 위해 사용자 enum 가치와 함께 열거한 값들에 대한 검사:
//Check to see if user has Write rights
If (user.Privileges And SecurityRights.Write = SecurityRigths.Write) Then
//Do something clever...
Else
//Tell user he can't write.
End If
HTH, 타일러
경로를 결합하려는 다른 열거 유형입니다.그래서 하나의 변수 값을 저장할 수 있습 중 하나에서 두 개의 서로 다른 열거의 권리?는 경우에 당신이 요구하고 저장에 대한 결합하는 두 개의 서로 다른 값을 하나의 열거 입력을 볼 수 있는 데이브 Arkell 설명
왜냐하면 그냥 정수와 함께 어떤 구문 설탕이다.그래서 만약 당신이 있는지 확인하십시오 겹치지 않게 결합할 수 있습니다 그들 주조에 의해 int.
그것은 만들지 않을 것에 대한 꽤 코드 하지만입니다.되도록 사용하여 열거 대부분의 시간입니다.일반적으로 당신이 할 경우 열거자 품종에서 당신의 코드 그것은 시간의 문제들을 낳을 반복되는 경우 문와 다른 지저분한 antipatterns.
키 조합 Enum
s 는지 확인하는 값은 두 개의 전원(1,2,4,8,etc.) 그래서 수행할 수 있는 조금 작업(|=
&=
).그 Enum
s 될 수 있는 태그 Flags
특성이 있습니다.이 Anchor
객실에는 윈도우 폼 컨트롤은 예입니다.면 그것으로 표시하는 플래그,Visual Studio 당신이 당신의 값을 확인을 선택하는 대신 하나 하나에서 드롭다운 속성에서 디자이너입니다.
는 경우에 당신은 사용에 대한 열거래()이 기.