博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#-接口

Posted on 2009-01-31 19:07  Zhiyett  阅读(198)  评论(0编辑  收藏  举报
1 接口的定义
public interface IAttribute
{
    
string Name { get;set;}
}

public class Component : IAttribute
{
    
public string Name
    {
        
get
        {
            
return "张三";
        }
        
set
        {
            
this.Name = value;
        }
    }
}

2 接口的实现
public interface IPlayer
{
    
string GetName();
    
string Show();
}

public class Options
{
    
public static readonly string JIANDAO = "剪刀";
    
public static readonly string SHITOU = "石头";
    
public static readonly string BU = "";
}

public class Grandpa:IPlayer
{
    
public string GetName()
    {
        
return "爷爷";
    }

    
public string Show()
    {
        Random random 
= new Random();
        
int i = (int)(random.Next() * 1000% 3;
        
switch (i)
        {
            
case 0return Options.JIANDAO;
            
case 1return Options.SHITOU;
            
defaultreturn Options.BU;
        }
     }
}

public class Grandson:IPlayer
{
    
public string GetName()
    {
        
return "孙子";
    }

    
public string Show()
    {
        
return Options.JIANDAO;
    }
}

3. 接口的继承
一个接口可从一个或多个基接口继承
interface IA { }
interface IB:IA { }
interface IC : IA, IB { }
interface ID : IA, IB, IC { }

4.接口与回调

 
       static void Main(string[] args)
        {
            
//创建一个控制器对象,将提供给它的回调对象传入
           Resolve resolve = new Resolve(new PlayBasketball());
            resolve.Play();

            resolve 
= new Resolve(new PlayFootball());
            resolve.Play();
        }

    
public interface IPlayer
    {
        
void Play();
    }
    
     
public class PlayBasketball:IPlayer
    {
        
public void Play()
        {
            Console.WriteLine(
"玩篮球");
        }
    }
    
    
public class PlayFootball : IPlayer
    {
        
public void Play()
        {
            Console.WriteLine(
"玩足球");
        }
    }

    
/// 控制角色--控制器对象
    
/// </summary>
    public class Resolve
    {
        
//持有一个接口的引用,通过构造方法初始化
        private IPlayer player;
       
public Resolve(IPlayer player)
        {
            
this.player = player;
        }

        
public void Play()
        {
            player.Play();
        }
    }

    
    
来自:http://www.cnblogs.com/beniao/archive/2008/07/28/1249031.html