C#接口的隐式和显示调用实例

    public interface IBookList
    {
        void Add(string BookName);
        string this[int index] { get;set;}
    }
    //隐式调用
    public class BookList : IBookList
    {
        private List<string> booklist = new List<string>();
        public void Add(string BookName)
        {
            booklist.Add(BookName);
        }
        public string this[int index]
        {
            get
            {
                return booklist[index];
            }
            set
            {
                booklist[index] = value;
            }
        }
    }
     //显示调用
   public class BookListDis : IBookList
    {
        private List<string> booklist = new List<string>();
      void IBookList.Add(string BookName)
        {
            booklist.Add(BookName);
        }
        string IBookList.this[int index]
        {
            get
            {
                return booklist[index];
            }
            set
            {
                 booklist[index] = value;
            }
        }
    }
        static void Main()
        {
            //隐式调用。
            BookList bklist = new BookList();
            bklist.Add("隐式");

            //显示调用
            BookListDis bklistDis = new BookListDis();
            //如果直接bklistDis.Add("显示");这样就出错。如:
            //只能如下:
            IBookList Ibk = (IBookList)bklistDis;
            Ibk.Add("显示");        //用接口增加
        }

      刚好看到一段关于显式调用和隐式调用的解释,简化了一下,记录下来。

posted @ 2014-03-03 16:39  口定  阅读(546)  评论(0)    收藏  举报