Programing

"숨기기가 의도 된 경우 새 키워드 사용"경고

lottogame 2020. 9. 5. 10:29
반응형

"숨기기가 의도 된 경우 새 키워드 사용"경고


화면 하단에 경고가 있습니다.

경고 1 'WindowsFormsApplication2.EventControlDataSet.Events'는 상속 된 멤버 'System.ComponentModel.MarshalByValueComponent.Events'를 숨 깁니다. 은폐가 의도 된 경우 새 키워드를 사용하십시오. C : \ Users \ myComputer \ Desktop \ Event Control \ WindowsFormsApplication2 \ EventControlDataSet.Designer.cs 112 32 eventControl

두 번 클릭하면 다음과 같이 표시됩니다.

public EventsDataTable Events {
    get {
        return this.tableEvents;
    }

누구든지 이것을 제거하는 방법을 말해 줄 수 있습니까?


클래스에는 기본 클래스가 있으며이 기본 클래스에는 클래스에 의해 재정의되는 Events라는 속성 (가상 또는 추상이 아님)도 있습니다. 재정의하려면 public 한정자 뒤에 "new"키워드를 넣으십시오. EG

public new EventsDataTable Events
{
  ..
}

재정의하지 않으려면 속성 이름을 다른 것으로 변경하십시오.


@wdavo가 정확합니다. 함수도 마찬가지입니다.

Update와 같은 기본 함수를 재정의하는 경우 하위 클래스에 다음이 필요합니다.

new void Update()
{
  //do stufff
}

함수 선언 시작시 새로운 기능이 없으면 경고 플래그가 표시됩니다.


아래 코드 Class A에서 인터페이스 IShow를 구현하고 메서드를 구현합니다 ShowData. Class B상속 Class A합니다. 에서 ShowData메서드 Class B를 사용 하려면 기본 클래스 메서드 를 숨기려면 메서드에 키워드를 사용해야 new하고 ShowData메서드 를 확장 Class A하려면 override키워드를 사용해야 합니다.

interface IShow
{
    protected void ShowData();
}

class A : IShow
{
    protected void ShowData()
    {
        Console.WriteLine("This is Class A");
    }
}

class B : A
{
    protected new void ShowData()
    {
        Console.WriteLine("This is Class B");
    }
}

참고 URL : https://stackoverflow.com/questions/19193821/use-the-new-keyword-if-hiding-was-intended-warning

반응형