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("显示"); //用接口增加 }
刚好看到一段关于显式调用和隐式调用的解释,简化了一下,记录下来。
原文:http://www.cnblogs.com/dingjian/p/3578646.html