>백엔드 개발 >C++ >C#의 암시 적 대 명시 인터페이스 구현 : 언제 어느 것을 사용해야합니까?

C#의 암시 적 대 명시 인터페이스 구현 : 언제 어느 것을 사용해야합니까?

Barbara Streisand
Barbara Streisand원래의
2025-02-01 08:41:09576검색

C# 인터페이스 구현 : 숨겨지고 명시 적 방법 c#의 인터페이스는 클래스 또는 구조가 따라야하는 계약을 정의합니다. 인터페이스를 구현할 때 숨겨진 구현과 명시 적 구현의 두 가지 방법을 선택할 수 있습니다.

숨겨진 구현

클래스 또는 구조의 일부로 인터페이스 메소드를 수정하십시오. 이러한 방법은 클래스와 인터페이스의 두 가지 방식으로 액세스 할 수 있습니다. 다음과 같이 예 : 표현 클래스 또는 구조에서 인터페이스 메소드를 개별적으로 표현합니다. 이러한 방법은 인터페이스를 통해서만 액세스 할 수 있으며 클래스를 통해 액세스 할 수 없습니다. 다음과 같이 예 :

숨겨 지거나 명시적인 구현을 사용하는 시점

클래스 또는 구조의 구현이 인터페이스의 정의와 완전히 일치 할 때 숨겨진 구현 . 명시 적 방법의 정의의 요구를 제거하여 코드를 단순화합니다.

다음 상황은

:
<code class="language-csharp">public interface ICopyable
{
    void CopyTo(Array array, int index);
}

public class MyClass : ICopyable
{
    public void CopyTo(Array array, int index)
    {
        // 实现代码
    }
}</code>
를 표현하는 것으로 간주되어야합니다.

인터페이스에서 제공 한 기본 구현을 다시 작성해야합니다. 동일한 메소드 이름을 가진 여러 인터페이스를 실현해야하지만 다르게 구현해야합니다. 클래스 또는 구조의 공개 API에서 숨겨진 인터페이스에서 구현해야합니다.

<code class="language-csharp">public interface ICopyable
{
    void CopyTo(Array array, int index);
}

public class MyClass : ICopyable
{
    void ICopyable.CopyTo(Array array, int index)
    {
        // 实现代码
    }
}</code>
장점과 단점

표현 구현 : 장점 : 는 세부 사항을 구현할 수 있도록보다 자세한 제어를 허용하고 여러 인터페이스에서 충돌 방법을 정의 할 때 모호성을 피할 수 있도록 도와줍니다.

단점 :
    코드는 길고 복잡하게 이어질 수 있습니다.
  • 구현으로 : 장점 : 코드는 더 간단하고 코드 행의 수가 적습니다.

    단점 :
  • 세부 사항 구현에 대한 제어가 적습니다.
  • 명시 적 구현에 대한 Microsoft의 지침 원칙 Microsoft의 지침 원칙은 일반적으로 우발적 인 행동으로 이어질 수 있으므로 명시 적 구현을 ​​피하기 위해 권장됩니다. 그러나이 지침의 원칙은 의존성 주입 (DI) 전에 이전에 공식화 될 수 있습니다. DI를 사용하면 인터페이스가 일반적으로 전달되면 명시 적 구현에 더 유리할 수 있습니다. 요컨대, 숨겨진 명백한 인터페이스 구현의 선택은 코드의 특정 요구에 따라 다릅니다. Cisectional 구현은 일반적으로보다 간결한 솔루션을 제공하며 인터페이스 구현의 유연성과 제어력이 더 크게 구현됩니다.

위 내용은 C#의 암시 적 대 명시 인터페이스 구현 : 언제 어느 것을 사용해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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