2011-09-14 7 views
2

VB.NET에서 비슷한 속성을 만들 수 있는지 궁금하네요 하나는 일반적인 하나? 문장에 잘 설명되어 있지 않으므로 여기에 예제 코드가 있습니다.몇 가지 유사한 속성을 만드는 방법 하나의 일반적인 하나의 호출

나는 다음과 같이 정의 된 비트 필드가 :

<Flags()> _ 
Enum E_Operation As Integer 
    Upload = 1 
    Download = 2 
    Overwrite = 4 
    etc... 
End Enum 

지금 내 클래스는 비트 필드의 비트 당 하나의 속성이 있습니다. 각 속성은 값을 반환하거나 해당 플래그를 설정합니다. 예 :

Public Property IsUpload() As Boolean 
Get 
    Return ((Operation And E_Operation.Upload) = E_Operation.Upload) 
End Get 
Set(ByVal value As Boolean) 
    SetBit(E_Operation.Upload, value) 
End Set 
End Property 

은 이제 특성의 꽤 많이하고 난 설정하거나 얻을 수있는 비트 수의 일반적인 속성을 호출하여 (이상적으로 한 줄)을 단순화하고 싶습니다.

Public Property IsUpload() As Boolean 
    GenericProperty(E_Operation.Upload) 
End Property 

VB.NET에서이를 수행 할 수있는 방법이 있습니까?

당신은 열거에게 개인 재산의 매개 변수 수
+0

{논외}을하고 있는지 전혀 받아 들일 수 있습니까? –

+0

나는 오버플로가 새롭다. 그리고 나는 단지 그렇게하는 것이 좋은 습관이라는 것을 최근에 알았다. – JBB

답변

2

:

Private Property OperationFlag(Flag As E_Operation) As Boolean 
    Get 
     Return ((Operation And Flag) = Flag) 
    End Get 
    Set(ByVal value As Boolean) 
     Operation = (Operation And Not Flag) Or (value And Flag) 
    End Set 
End Property 

을 그리고 공용 속성 래퍼합니다 다른 질문에 대한 답변

Public Property IsUpload As Boolean 
    Get 
     Return OperationFlag(E_Operation.Upload) 
    End Get 
    Set(value As Boolean) 
     OperationFlag(E_Operation.Upload) = value 
    End Set 
End Property 
+1

그리고 Bala R이 위에 언급 한대로 질문을 해결하는 답변 옆에있는 틱을 누르십시오. 이전 질문으로 돌아가서 (프로필 페이지 참조) 똑같이하십시오. 당신은 당신을 돕기 위해 취한 시간을 인정하지 않으면 당신을 돕기를 꺼리는 사람들을 발견하게 될 것입니다. –

+0

고맙습니다. Hand-E-Food, 정확히 코드에서했던 것입니다.하지만 원하는 것은 한 줄에 각 속성을 쓸 수있는 "마법"구문입니다 (예 : 비트 업로드의 일반 속성 호출). 그리고 예. 이전 질문을 시작했습니다. – JBB

+0

난 그냥 첫 번째 그것을 떠나, OperationFlagSet, 호출 할 수 및 명명 된 속성을 귀찮게. C#으로의 이동을 고려한다면 인덱싱 된 속성을 지원하지 않습니다. 세터는 버그 수정이 필요합니다. –

관련 문제