• C#接口


    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

  • 相关阅读:
    repair table
    rmtree函数
    alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。
    MySQL DATE_SUB() 函数
    freebsd开启root远程登陆
    nbtscan ip地址
    FreeBSD 安裝 wget
    genlist -s 192.168.21.*
    /pentest/enumeration/0trace
    CSS的margin属性:详解margin属性
  • 原文地址:https://www.cnblogs.com/tuzhiye/p/1381656.html
Copyright © 2020-2023  润新知