草庐IT

midi-interface

全部标签

c# - 抽象类与接口(interface)

我对C#中抽象类的用法有点困惑。在C++中,定义一个模板是有意义的,继承抽象类的类可以遵循该模板。但是,在C#中,接口(interface)不是起到同样的作用吗?是的,抽象类可以有默认的实现,这不是接口(interface)提供的。因此,如果不需要将实现包含在基类中,那么使用接口(interface)是否更好? 最佳答案 我仍然喜欢提供接口(interface)的默认抽象实现,假设它是一个实体接口(interface)(而且它有意义)。您永远不知道何时可以向具有简单默认实现的接口(interface)添加一些东西,这些实现可以包含并

c# - 抽象类与接口(interface)

我对C#中抽象类的用法有点困惑。在C++中,定义一个模板是有意义的,继承抽象类的类可以遵循该模板。但是,在C#中,接口(interface)不是起到同样的作用吗?是的,抽象类可以有默认的实现,这不是接口(interface)提供的。因此,如果不需要将实现包含在基类中,那么使用接口(interface)是否更好? 最佳答案 我仍然喜欢提供接口(interface)的默认抽象实现,假设它是一个实体接口(interface)(而且它有意义)。您永远不知道何时可以向具有简单默认实现的接口(interface)添加一些东西,这些实现可以包含并

c# - 接口(interface)实现两次 "types may unify";为什么此解决方法有效?

我在尝试为同一个类实现接口(interface)两次时遇到编译器错误,如下所示:publicclassMapper:IMapper,IMapper{/*implementationforIMapperhere.*//*implementationforIMapperhere.*/}错误:'Mapper'cannotimplementboth'IMapper'and'IMapper'becausetheymayunifyforsometypeparametersubstitutions.为什么这个解决方法有效?我想知道我是已经解决了问题还是只是欺骗了编译器。publicclassMapp

c# - 接口(interface)实现两次 "types may unify";为什么此解决方法有效?

我在尝试为同一个类实现接口(interface)两次时遇到编译器错误,如下所示:publicclassMapper:IMapper,IMapper{/*implementationforIMapperhere.*//*implementationforIMapperhere.*/}错误:'Mapper'cannotimplementboth'IMapper'and'IMapper'becausetheymayunifyforsometypeparametersubstitutions.为什么这个解决方法有效?我想知道我是已经解决了问题还是只是欺骗了编译器。publicclassMapp

c# - 在 WCF 服务中传递接口(interface)?

我正在试验WCF服务,遇到了传递接口(interface)的问题。这个有效:[ServiceContract]publicinterfaceIHomeService{[OperationContract]stringGetString();}但这不是:[ServiceContract]publicinterfaceIHomeService{[OperationContract]IDeviceGetInterface();}当我尝试编译客户端时,它在GetInterface方法上失败了。我收到一个异常,指出它无法将Object转换为IDevice。在客户端,IHomeService类使用

c# - 在 WCF 服务中传递接口(interface)?

我正在试验WCF服务,遇到了传递接口(interface)的问题。这个有效:[ServiceContract]publicinterfaceIHomeService{[OperationContract]stringGetString();}但这不是:[ServiceContract]publicinterfaceIHomeService{[OperationContract]IDeviceGetInterface();}当我尝试编译客户端时,它在GetInterface方法上失败了。我收到一个异常,指出它无法将Object转换为IDevice。在客户端,IHomeService类使用

c# - 在实现中用派生类覆盖接口(interface)方法返回类型

我正在尝试在类中实现(C#)接口(interface)方法,返回派生类型而不是接口(interface)中定义的基类型:interfaceIFactory{BaseCarGetCar();}classMyFactory:IFactory{MyCarGetCar(){}}当然在哪里:classMyCar:BaseCar{}但是,出现如下错误:“MyFactory”未实现接口(interface)成员“IFactory.GetCar()”。“MyFactory.BaseCar()”无法实现IFactory.GetCar(),因为它没有匹配的“BaseCar”返回类型。谁能告诉我失败的原因,

c# - 在实现中用派生类覆盖接口(interface)方法返回类型

我正在尝试在类中实现(C#)接口(interface)方法,返回派生类型而不是接口(interface)中定义的基类型:interfaceIFactory{BaseCarGetCar();}classMyFactory:IFactory{MyCarGetCar(){}}当然在哪里:classMyCar:BaseCar{}但是,出现如下错误:“MyFactory”未实现接口(interface)成员“IFactory.GetCar()”。“MyFactory.BaseCar()”无法实现IFactory.GetCar(),因为它没有匹配的“BaseCar”返回类型。谁能告诉我失败的原因,

c# - 将匿名类型转换为接口(interface)?

这好像不行?那么最好的解决方法是什么?扩展/动态?publicinterfaceICoOrd{intx{get;set;}inty{get;set;}}...ICoOrda=new{x=44,y=55};引用:http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.internalsvisibletoattribute.aspx(乔恩的建议) 最佳答案 最好的“变通方法”是创建和使用实现该接

c# - 将匿名类型转换为接口(interface)?

这好像不行?那么最好的解决方法是什么?扩展/动态?publicinterfaceICoOrd{intx{get;set;}inty{get;set;}}...ICoOrda=new{x=44,y=55};引用:http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.internalsvisibletoattribute.aspx(乔恩的建议) 最佳答案 最好的“变通方法”是创建和使用实现该接