> 백엔드 개발 > C++ > C# 메서드 서명에서 `new` 키워드는 무엇을 의미합니까?

C# 메서드 서명에서 `new` 키워드는 무엇을 의미합니까?

Patricia Arquette
풀어 주다: 2025-01-03 02:17:39
원래의
638명이 탐색했습니다.

What Does the `new` Keyword Mean in a C# Method Signature?

메서드 서명의 새 키워드 이해

코드를 리팩토링하는 동안 특이한 메서드 서명이 나타났습니다.

private static new MyObject CreateSomething()
{
  return new MyObject{"Something New"};
}
로그인 후 복사

질문: 이 메소드 시그니처에서 new 키워드의 의미는 무엇인가요? C# 3.0에 도입된 기능인가요? override와 어떻게 다릅니까?

답변:

메서드 시그니처의 new 키워드는 override와는 다른 용도로 사용됩니다. Microsoft의 MSDN 설명서에 따르면 상속된 멤버를 숨길 수 있습니다.

차이점을 보여주는 예:

public class A
{
   public virtual void One();
   public void Two();
}

public class B : A
{
   public override void One();
   public new void Two();
}

B b = new B();
A a = b as A;

a.One(); // Calls implementation in B
a.Two(); // Calls implementation in A
b.One(); // Calls implementation in B
b.Two(); // Calls implementation in B
로그인 후 복사

이 예에서는 Override가 One 메서드에서 사용되어 해당 구현을 재정의합니다. 기본 클래스 A. 반면에 A에서 상속된 구현을 숨기기 위해 Two 메서드에서 new를 사용합니다.

Key 차이점:

override는 가상 또는 추상 메서드를 수정하여 파생 클래스에서 다양한 구현을 제공합니다. 이와 대조적으로 new는 가상 및 비가상 모두에서 상속된 멤버를 숨기므로 파생 클래스에서 새로운 구현을 제공할 수 있습니다.

위 내용은 C# 메서드 서명에서 `new` 키워드는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿