c#课后小试4
Interfaces(接口)
这次课程,我们主要学习了C#中的接口的特点及其使用。依我看来,接口与抽象类很像但有所不同,或者说,借口是抽象类的一种升级。
interface与abstract class的主要区别:interface可以放置在程序层的任意位置,abstract class只能放在顶端。、
声明接口:
public interface IStorable
{
void Read( );
void Write(object);
}
使用接口:
public class Document : IStorable
{
public void Read( ) {...}
public void Write(object obj) {...}
// ...
}
我们可以看出,接口在声明时只写函数签名,不能实现。当使用接口时,需要在对应类中实现接口中的所有函数,否则编译器会报错。
值得说明的是,可以同时继承多个接口
public class Document : IStorable, ICompressible
并且,接口直接也可以继承,也就是说,接口可以组合。
public interface c : a,b (其中,a,b,c 为接口名称呢)
{
……
}
关于关键字as的说明:a as b ,会将左边的操作数转换为右边的操作数,假如b是a的一个接口,则可以转换。不行则会返回null值。
数组
声明:type [] arry-name;
关键字 params
使用时,放在函数定义的参数前。
public void DisplayVals( params int[] intVals )
{…; }
调用该函数时,括号内可以不用写数组,而写数组的各项。