2012. 1. 17. 03:50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication1
{
public interface IMessengeSeverUI
{
void WriteMessage(string message);
void UpdateClientCount(int count);
}
public class MessengServerUI : IMessengeSeverUI
{
#region IMessengeSeverUI 멤버
public void WriteMessage(string message)
{
Debug.Write(message);
}
public void UpdateClientCount(int count)
{
Debug.Write(count);
}
#endregion
}
public interface IMessengerServer
{
bool Start(IMessengeSeverUI ui);
bool Stop();
}
public class MessengerServer : IMessengerServer
{
private string m_ID="황승재";
public string ID {
get {
return m_ID;
}
}
#region IMessengerServer 멤버
public bool Start(IMessengeSeverUI ui)
{
ui.WriteMessage("IMessengeSeverUI 상속된 자신을 파라미터로 보낸 경우");
return true;
}
public bool Stop()
{
Debug.Write("Stop");
return true;
}
#endregion
}
class Program
{
static void Main(string[] args)
{
// 1
IMessengeSeverUI m_ui = new MessengServerUI();
m_ui.WriteMessage("인터페이스가 하위 상속된 클레스 함수 호출.");
// 2
(new TestClass()).Click();
}
}
class TestClass : IMessengeSeverUI
{
private IMessengerServer m_server = null;
public void Click()
{
m_server = new MessengerServer();
m_server.Start(this);
}
#region IMessengeSeverUI 멤버
public void WriteMessage(string message)
{
//throw new NotImplementedException();
Debug.Write(message);
}
public void UpdateClientCount(int count)
{
//throw new NotImplementedException();
Debug.Write(count);
}
#endregion
}
}
'강좌 > C#' 카테고리의 다른 글
InvokeRequired (0) | 2012.01.17 |
---|---|
InvokeRequired & Cross Thread 처리방법 (0) | 2012.01.17 |
Interface 변수 상속한 하위 클래스 함수 호출. (0) | 2012.01.17 |
스레드 콜백함수에 파라미터 보내는 방법 - 스레드, delegate 사용 (0) | 2012.01.17 |
Cross-thread operation not valid (0) | 2012.01.17 |