일반적으로 .NET은 암시적 인터페이스 구현, 명시적 인터페이스 구현, 혼합 인터페이스 구현이라는 세 가지 인터페이스 구현 방법을 제공합니다. 이 세 가지 방법은 각각 고유한 특성을 가지고 있습니다.
우선 암시적 인터페이스 구현을 살펴보겠습니다. 암시적 인터페이스 구현은 .NET의 기본 인터페이스 구현 방법이기 때문에 아마도 우리가 가장 많이 사용하는 인터페이스 구현일 것입니다. 암시적 인터페이스 구현의 예를 살펴보겠습니다.
using System;
internal class MyClass
{
public void SomeMethod()
{
// Utilization Myinplement 선언 인터페이스를 사용하는 객체
IMyInterface iObj = new MyInplement();
iObj.MethodA();
// 클래스 메소드를 사용하여 Myinplement 객체 선언
MyInplement obj = new MyInplement() ;
obj.MethodB();
}
}
public class MyInplement : IMyInterface
{
#region IMyInterface Members
///
/// 암시적 인터페이스 구현을 사용하여 인터페이스
///
public void MethodA()
{
Console.WriteLine("a");
}///
/// 암시적 인터페이스 구현을 사용하여 인터페이스에서 메서드 구현
///
public void MethodB()
{
Console.WriteLine("B");
}
#endregion
}
공용 인터페이스 IMyInterface
{
void MethodA();
void MethodB();
}
internal class MyClass
{
public void SomeMethod()
{
// 인터페이스 사용 선언
IMyInterface iObj = new MyInplement();
iObj.MethodA();
// MyImplement의 MethodA 메서드가 비공개이기 때문에 클래스 메서드를 사용하여 Myinplement 개체를 선언하면 오류가 보고됩니다.
MyInplement obj = new MyInplement();
obj.MethodB();
}
}
public class MyInplement : IMyInterface
{
#region IMyInterface Members
// /
/// 명시적 인터페이스 구현을 사용하여 인터페이스에서 메서드를 구현합니다
///
void IMyInterface.MethodA()
{
Console. WriteLine("a");
}
///
/// 명시적인 인터페이스 구현을 사용하여 인터페이스에 메서드를 구현합니다
/// 오류가 보고되기 때문입니다. 명시적 인터페이스 구현에서는 수정자가 허용되지 않습니다.
///
public void IMyInterface.MethodB()
{
Console.WriteLine("B")
}
#endregion
}
공용 인터페이스 IMyInterface
{
void MethodA();
void MethodB();
}
{
public void SomeMethod()
{
// 인터페이스를 사용하여 Myinplement 개체 선언
IMyInterface iObj = new MyInplement();
iObj.MethodA(); }
}
public class MyInplement : IMyInterface
{
#region IMyInterface Members
///
/// 명시적인 인터페이스 구현 메서드를 사용하여 메서드를 구현합니다. 인터페이스
///
void IMyInterface.MethodA()
{
Console.WriteLine("a");
}
/// < ;summary>
/// 암시적 인터페이스 구현을 사용하여 인터페이스에서 메서드 구현
///
public void MethodB()
{
Console.WriteLine(" B");
}
#endregion
}
공용 인터페이스 IMyInterface
{
void MethodA();
void MethodB();
}
위 코드에서는 MehtodB 구현을 암시적 인터페이스 구현으로 변경하여 MyImplement.Method 수정자가 공개되고 코드에 오류가 없도록 했습니다.