아카이빙/C#

[C#] 여러 인터페이스의 멤버를 명시적 구현

셩님 2018. 6. 18. 19:46

[C#] 여러 인터페이스의 멤버를 명시적 구현

  • 명시적 인터페이스 구현을 통해 이름이 같은 각 인터페이스 멤소드를 별도로 구현할 수있다.

  • 아래 예시는 섭씨온도와 화씨온도를 구하는 예시이며, 두 인터페이스 모두 GetTemperature()라는 공통 메소드를 가진다.

ICelsius, IFahrenheit 인터페이스

interface ICelsius
{
   float GetTemperature();
}

interface IFahrenheit
{
   float GetTemperature();
}

ICelsius, IFahrenheit을 상속받은 Temperature 클래스

class Temperature : ICelsius, IFahrenheit
{
   float temperature;

   public Temperature(float temperature)
  {
       this.temperature = temperature;
  }

   float ICelsius.GetTemperature()
  {
       return temperature;
  }

   float IFahrenheit.GetTemperature()
  {
       return (temperature * 1.8f) + 32;
  }
}

테스트

class MainApp
{
   static void Main()
  {
       Temperature temp = new Temperature(36.5f);

       ICelsius ctemp = temp as ICelsius;
       IFahrenheit ftemp = temp as IFahrenheit;

       Console.WriteLine(ctemp.GetTemperature());
       Console.WriteLine(ftemp.GetTemperature());
  }
}

결과

36.5
97.7

참조


'아카이빙 > C#' 카테고리의 다른 글

[C#] 프로퍼티  (0) 2018.06.20
[C#] 추상클래스와 인터페이스  (0) 2018.06.18
[C#] 인터페이스 다중 상속  (0) 2018.06.18
[C#] 인터페이스를 상속하는 인터페이스  (0) 2018.06.18
[C#] 인터페이스  (0) 2018.06.18