new는 인스턴스를 생성하는 데 쓰이는 경우가 제일 익숙하리라 생각이 된다.

하지만 new 키워드는 생각보다 다양한 역할을 한다.

 

 

이 글에선 new 한정자에 대해 알아보자.

 

| new 한정자를 알게되는 경위

 

The keyword new is required on 'DerivedC.x' because it hides inherited member 'BaseC.x'.
 

보통 파생된 클래스에서 같은 이름의 멤버를 지정하다 알게 될 확률 58,000%다.

물론 new 한정자가 없어도 경고 메시지를 낼 뿐, 기본 클래스의 멤버를 숨기는 것으로 동작한다.

 

| new 한정자 사용법

 

public class BaseC
{
    public int x;
    public void Invoke() { }
}
public class DerivedC : BaseC
{
    new public void Invoke() { }
}
 

 

숨기고 싶은 멤버 (property, field, method, indexer, const) 앞에 new 한정자를 기입해주면 된다.

한 가지 유의사항이 있다면, override 한정자와는 동시에 사용할 수 없다.

 

| 참고

 

 

반응형

'Workspace > C#' 카테고리의 다른 글

[C# 7.0] 출력(out) 변수 선언  (0) 2023.04.17
[C# 7.0] 로컬 함수  (0) 2023.04.17
[C#] partial 키워드  (0) 2023.04.06
[C# 7] Tuple  (0) 2023.04.06
[C#] .NET Framework에 대응되는 버전  (0) 2023.04.06

+ Recent posts