문제

응용 프로그램에서 일부 주를 관리하기 위해 추상적 인 컨트롤을 만들려고했습니다. 그러나 나는 일부 CLS 문제에 대해 파울을 해왔으며 누군가가 통찰력을 제공 할 수 있기를 바랐습니다.

나는 다음과 같은 열거가 있습니다.

<Flags()> _
Public Enum FormState
    Read = 1
    Edit = 2
    Insert = 4
End Enum

그리고 그와 같은 수업 :

Public MustInherit Class Fields
    Inherits System.Web.UI.UserControl

    Public Property State() As Enumerators.FormState
        Get
            Return _State
        End Get

        Set(ByVal value As Enumerators.FormState)
            _State = value
            ToggleState(value)
        End Set
    End Property

    Protected MustOverride Sub ToggleState(ByVal state As FormState)
End Class

이 코드를 컴파일하려고 할 때 경고가 남아 있습니다. 상태 속성은 CLS를 준수하지 않으며 상태 논쟁. 어떻게 되나요? 그리고 경고를 제거하기 위해이 문제를 어떻게 수정할 수 있습니까?

도움이 되었습니까?

해결책

코드를 살펴보면 열거는 열거 자라는 클래스의 일부인 것 같습니다. 클래스는 코드에 나열되어 있지 않지만 코드를 완전히 제어한다고 가정합니다.

클래스에는 CLS 준수 속성도 태그를 지정해야합니다.

다른 팁

경고를 제거하려면 클래스, 메소드 및 속성이 다음과 같이 보이도록 다음 속성을 추가하십시오.

<CLSCompliant(False)> _
Public MustInherit Class Fields
    Inherits System.Web.UI.UserControl

    <CLSCompliant(False)> _
    Public Property State() As Enumerators.FormState
        Get
            Return _State
        End Get

        Set(ByVal value As Enumerators.FormState)
            _State = value
            ToggleState(value)
        End Set
    End Property

    <CLSCompliant(False)> _
    Protected MustOverride Sub ToggleState(ByVal state As FormState)
End Class

이것은 경고를 제거하려는 컴파일러를 의미하며 코드가 clscompliant가 아니라는 것을 알고 있습니다.

값 0이있는 항목이 없을 수도 있습니다.

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