欢迎来到天天文库
浏览记录
ID:15515045
大小:44.00 KB
页数:7页
时间:2018-08-03
《c#接口详解及实例应用分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、· C#接口详解及实例应用分析C#接口定义是什么呢?C#接口定义相关的一些内容是什么?C#接口定义的学习需要注意什么呢?那么本文就向你详细介绍这些内容。C#接口定义是什么呢?其实,C#接口定义的就是一种约定,使得实现接口的类或结构在形式上保持一致。个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的。注意,虽然在概念上,C#接口类似于COM接口,但他们的底层结构是不同的。那么,我们来看一下如何声明和使用接口。C#接口定义之声明接口声明接口在语法上
2、和声明抽象类完全相同,例如这里有一个银行账户的接口:1.public interface IBankAccount 2.{ 3.void PayIn(decimal amount); 4.bool Withdraw(decimal amount); 5. 6.decimal Balance 7.{ 8.get; 9.} 10.} 注意:接口中只能包含方法、属性、索引器和事件的声明。不允许声明成员上的修饰符,即使是pubilc都不行,因为接口成员总是公有的,也不能声明为虚拟和静态的。如果需要修饰符,最好让实现类来声明。C#接口定义之使
3、用接口的实例:这是书上的一个简单的例子,但足以说明接口的使用方法。一个银行账户的接口,两个不同银行账户的实现类,都继承于这个接口。接口声明如上。下面是两个账户类:11.class SaverAccount : IBankAccount 7/71.{ 2.private decimal balance; 3. 4.public decimal Balance 5.{ 6.get 7.{ 8.return balance; 9.} 10.} 11. public void PayIn(decimal amount) 12.{ 13.b
4、alance += amount; 14.} 15. public bool Withdraw(decimal amount) 16.{ 17.if (balance >= amount) 18.{ 19.balance -= amount; 20.return true; 21.} 22.Console.WriteLine("Withdraw failed."); 23.return false; 24.} 25. public override string ToString() 26.{ 27.return String.Fo
5、rmat("Venus Bank Saver:Balance={0,6:C}", balance); 28.} 29.} 30. class GoldAccount : IBankAccount 31.{ 32.private decimal balance; 33. public decimal Balance 7/71.{ 2.get 3.{ 4.return balance; 5.} 6.} 7. public void PayIn(decimal amount) 8.{ 9.balance += amount; 10.}
6、11. public bool Withdraw(decimal amount) 12.{ 13.if (balance >= amount) 14.{ 15.balance -= amount; 16.return true; 17.} 18.Console.WriteLine("Withdraw failed."); 19.return false; 20.} 21. public override string ToString() 22.{ 23.return String.Format( 24."Jupiter Bank
7、Saver:Balance={0,6:C}", balance); 25.} 26.} 可见,这两个实现类多继承了IBankAccount接口,因此它们必须要实现接口中的所有声明的方法。要不然,编译就会出错。让我们来测试一下,下面是测试代码:27.static void Main(string[] args) 28.{ 29.IBankAccount venusAccount = new SaverAccount(); 30.IBankAccount jupiterAccount = new CurrentAccount(); 7/
8、71.venusAccount.PayIn(200); 2.jupiterAccount.PayIn(500); 3.Console.WriteLine(venusAccount.ToString()); 4.jupiterAccou
此文档下载收益归作者所有