您的位置:首页 > 其它

一个类如何实现两个接口中同名同参数不同返回值的函数

2013-09-10 14:19 381 查看
假设有如下两个接口:


public interface IA






{


string GetA(string a);


}


public interface IB






{


int GetA(string a);


}
他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口:


public class X:IA,IB
由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该如何同时实现这两个接口拉?解决办法是把其中的不能重载的方法直接写成接口的方法,同时要注意这个方法只能由接口调用,不能声明为Public类型的.所以X的定义如下:


public class X:IA,IB






{


public string GetA(string a)






{


Console.WriteLine("IA.GetA");


return a+":zengyi";


}


int IB.GetA(string a)//实现IB接口






{


Console.WriteLine("IB.GetA");


return 12;


}


}
同样如果有更多的同名同参不同返回值的接口,也可以通过"接口名.函数名"的形式实现.

调用方式如下:


public static void Main()






{


X a=new X();


a.GetA("studyzy");


IB b=a;


b.GetA("studyzy");


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐