c#如何显式实现接口成员
本示例声明一个接口IDimensions和一个类Box,显式实现了接口成员GetLength和GetWidth。通过接口实例dimensions访问这些成员。
interfaceIDimensions { floatGetLength(); floatGetWidth(); } classBox:IDimensions { floatlengthInches; floatwidthInches; Box(floatlength,floatwidth) { lengthInches=length; widthInches=width; } //Explicitinterfacememberimplementation: floatIDimensions.GetLength() { returnlengthInches; } //Explicitinterfacememberimplementation: floatIDimensions.GetWidth() { returnwidthInches; } staticvoidMain() { //Declareaclassinstancebox1: Boxbox1=newBox(30.0f,20.0f); //Declareaninterfaceinstancedimensions: IDimensionsdimensions=box1; //Thefollowingcommentedlineswouldproducecompilation //errorsbecausetheytrytoaccessanexplicitlyimplemented //interfacememberfromaclassinstance: //System.Console.WriteLine("Length:{0}",box1.GetLength()); //System.Console.WriteLine("Width:{0}",box1.GetWidth()); //Printoutthedimensionsoftheboxbycallingthemethods //fromaninstanceoftheinterface: System.Console.WriteLine("Length:{0}",dimensions.GetLength()); System.Console.WriteLine("Width:{0}",dimensions.GetWidth()); } } /*Output: Length:30 Width:20 */
可靠编程
- 请注意,注释掉了Main方法中以下行,因为它们将产生编译错误。显式实现的接口成员不能从类实例访问:
//System.Console.WriteLine("Length:{0}",box1.GetLength()); //System.Console.WriteLine("Width:{0}",box1.GetWidth());
- 另请注意Main方法中的以下行成功输出了框的尺寸,因为这些方法是从接口实例调用的:
System.Console.WriteLine("Length:{0}",dimensions.GetLength()); System.Console.WriteLine("Width:{0}",dimensions.GetWidth());
以上就是c#如何显式实现接口成员的详细内容,更多关于c#显式实现接口成员的资料请关注毛票票其它相关文章!