안녕하세요 . 비제이입니다.
빡신 프로젝트 속에서, 글을 2달여 동안 못 썻네요...
이것저것 끄적거린것도 많아서 쓸 내용은 많았으나, 바쁘다는 핑게로 못썼네요...
습관을 가지도록 하겠습니다.
혹시, 인터페이스의 명시적 , 암시적 구현에 대해 아시나요.
개발하다가 이 차이를 몰라서 케망신을 당한 적이 있습니다. -_-;
명시적 구현을 한 클래스에는 구현한 메서드가 없습니다.
암시적 구현을 한 클래스에는 구현한 메서드가 있습니다.
먼 말인지 모르시겠죠? 저두 조금 -_-;
샘플을 보시죠~
public interface ICamera
{
void ZoomIn();
void ZoomOut();
}
public class Sony : ICamera
{
#region ICamera 멤버
//명시적 구현
void ICamera.ZoomIn()
{
Console.WriteLine("땡겨~");
}
//암시적 구현
public void ZoomOut()
{
Console.WriteLine("늘려~");
}
#endregion
}
Sony 클래스에는 ZoomOut 메서드는 있지만, ZoomIn 메서드는 없습니다.
각각의 메서드를 호출하는 방법입니다.
static void Main(string[] args)
{
Sony camera = new Sony();
((ICamera)camera).ZoomIn();//명시적 구현
camera.ZoomOut();//암시적 구현
}
ZoomOut메서드는 암시적 구현했으므로, 접근이 가능하지만, ZoomIn 메서드는
ICamera의 멤버이므로, 캐스팅해서 사용해야합니다.
상황에 따라서 잘 사용해 보시기 바랍니다.
자주 찾아뵙겠습니다. (--)(__)(--)
ps>
엠칵스님, 재학사마, 종호쓰도.. 잘 계시는군요... 방가방가~