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#显式实现接口成员的资料请关注毛票票其它相关文章!