C#接口的隐式和显示调用,区别和实例
把代码打一边,然后看注释会明白很多。(新手用)
|
namespace MyInface { //显示接口就是只能用接口调用。 //隐式接口和类都能调用。 public interface IBookList { void Add(string BookName); void Append(string BookName); void Remove(int position); int Count { get;} string this[int index] { get;set;} } //隐式调用 public class BookList : IBookList { private List<string> booklist = new List<string>(); #region IBookList 成员 public void Add(string BookName) { booklist.Add(BookName); } public void Append(string BookName) { booklist.Insert(booklist.Count, BookName); } public void Remove(int position) { booklist.RemoveAt(position); } public int Count { get { return booklist.Count; } } public string this[int index] { get { return booklist[index]; } set { booklist[index] = value; } } #endregion } |
//显示调用 该类只能用接口调用。
|
public class BookList2 : IBookList { private List<string> booklist = new List<string>(); #region IBookList 成员 void IBookList.Add(string BookName) { booklist.Add(BookName); } void IBookList.Append(string BookName) { booklist.Insert(booklist.Count, BookName); } void IBookList.Remove(int position) { booklist.Remove(position.ToString()); } int IBookList.Count { get { return booklist.Count; } } string IBookList.this[int index] { get { return booklist[index]; } set { booklist[index] = value; } } #endregion } class text { static void Main() { //隐式调用。 BookList bklist = new BookList(); bklist.Add("¥¥¥隐式"); Console.Write("实现隐式接口的例子:使用类:{0}", bklist[0]); IBookList ibklist = (IBookList)bklist; //转变类型后,接连联内容也一同赋值给过来了。 ibklist.Add("$$$$$隐式");// 这里索引是第二个了。 Console.Write("实现隐式接口的例子:使用接口{0}", ibklist[1]); //显示调用 只能用接口调用。 BookList2 bklist2 = new BookList2(); //如果直接bklist2.Add("显示");这样就出错。如: //只能如下: IBookList Ibk = (IBookList)bklist2; Ibk.Add("$$$$显示接口"); //用接口增加 Console.Write("实现显示接口的例子:使用接口{0} ", Ibk[0]);//用接口调用。 Console.ReadLine(); } } } |

浙公网安备 33010602011771号