문제

는 방법이 있을 결합하에서 열거형 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.

키 조합 Enums 는지 확인하는 값은 두 개의 전원(1,2,4,8,etc.) 그래서 수행할 수 있는 조금 작업(|= &=).그 Enums 될 수 있는 태그 Flags 특성이 있습니다.이 Anchor 객실에는 윈도우 폼 컨트롤은 예입니다.면 그것으로 표시하는 플래그,Visual Studio 당신이 당신의 값을 확인을 선택하는 대신 하나 하나에서 드롭다운 속성에서 디자이너입니다.

는 경우에 당신은 사용에 대한 열거래()이 .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top