接口的显式调用和隐式调用
2013-05-06 11:52
190 查看
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();
}
}
}
{
//显示接口就是只能用接口调用。
//隐式接口和类都能调用。
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();
}
}
}
相关文章推荐
- Activity 的显式调用与隐式调用
- C#的显式接口和隐式接口
- 接口的显式实现与隐式实现
- Qt中库函数的隐式调用与显式调用
- 关于显式调用DLL、隐式调用DLL和查看DLL输出函数
- C#的显式接口和隐式接口
- Dll的显式和隐式调用
- 父类构造器的隐式调用和显式调用
- linux 动态库 显式调用 与 隐式调用
- 显式和隐式实现接口区别
- C#.NET隐式和显式接口方法实现幕后发生的故事
- c++构造函数的显式和隐式调用
- linux下动态链接库(.so)的显式调用和隐式调用
- linux下动态链接库(.so)的显式调用和隐式调用
- 程序显式调用和隐式调用linux动态链接库(*.so)的区别。
- Effective C++第七章-模板和泛型编程之编译期多态(运行期多态)和隐式接口(显式接口)
- linux下动态链接库(.so)的显式调用和隐式调用
- 隐式接口和显式接口
- 关于显式调用DLL、隐式调用DLL和查看DLL输出函数
- DLL隐式与显式调用浅析