>백엔드 개발 >C++ >C#의 섀도 잉 오리 : 각 기술을 언제 사용해야합니까?

C#의 섀도 잉 오리 : 각 기술을 언제 사용해야합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-28 13:56:09898검색

C#다시 쓰기 및 숨기기의 메소드의 메소드 상속 측면에서 C#은 기본 클래스의 방법을 재 작성 및 숨기기위한 방법을 재정의하는 두 가지 기술을 제공합니다. 이 두 기술은 작업 방법과 상속 체인에 영향을 미치는 측면에서 근본적인 차이를 가지고 있습니다. Overriding vs. Shadowing in C#: When Should You Use Each Technique?
숨겨진

Hidden을 사용하면 Foundation Chinese 방법과 동일한 이름의 새로운 메소드를 만들 수 있지만 키워드는 사용되지 않습니다. 이 방법은 기초 방법을 숨기고 파생 클래스의 로컬 멤버가되었습니다. 파생 인스턴스가 숨겨진 메소드를 호출하면 상속 레벨 구조에 관계 없이이 클래스의 구현을 직접 실행합니다. 예 :

이 예에서는 메소드가 클래스 에 숨겨지고 메소드

가 다시 작성됩니다. 인스턴스)이 를 호출 할 때 in 가 직접 를 반환합니다.

다시 작성 override 대조적으로, 다시 쓰기에는

키워드가 필요합니다. 기본 클래스에서 가상 메소드의 새로운 구현을 정의 할 수 있습니다. 파생 인스턴스가 다시 쓰기 메소드를 호출하면 상속 체인에 따라 파생 클래스에서 구현됩니다.

예 : 이전 예에서

의 메소드가 다시 작성됩니다. >>를 호출하면 class A { public int Foo(){ return 5;} public virtual int Bar(){return 5;} } class B : A { public new int Foo() { return 1;} //隐藏 public override int Bar() {return 1;} //重写 }가 다시 쓰기 때문에 가 반환됩니다.

숨겨진 것과 다시 쓰기의 차이 Foo 숨겨진 것과 다시 쓰기 사이의 선택은 특정 요구에 따라 다릅니다. B 숨겨진 : Bar 기본 클래스의 상속 방법을 숨기고 로컬 구현을 사용하려면 숨겨진 사용을 사용하십시오. clB Reworching : B 상속 메소드를 재정의하고 파생 클래스의 구현을 실행하려면 다시 쓰기를 사용하십시오. Foo 1

위 내용은 C#의 섀도 잉 오리 : 각 기술을 언제 사용해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.