在C#中是否可以将两个类似的类函数包装成一个类?
我正在使用C#中的SqlConnection和AdomdConnection对象 SqlConnection由以下内容构成:DbConnection,iClonable AdomdConnection由以下各项构成:组件、IDbConnection、IDisposable、IClonable 我希望我可以使用一个公共接口或类类型来传递信息,但这似乎不是一个选项,因为我可以看出,它们不共享公共类型 它们都有类似的方法,我需要调用它们,但我将编写一些逻辑来调用它们,我想将它们包装到它们自己的类中,然后调用该类,让它担心底层类型 起初,我想我可以用这样的东西:在C#中是否可以将两个类似的类函数包装成一个类?,c#,C#,我正在使用C#中的SqlConnection和AdomdConnection对象 SqlConnection由以下内容构成:DbConnection,iClonable AdomdConnection由以下各项构成:组件、IDbConnection、IDisposable、IClonable 我希望我可以使用一个公共接口或类类型来传递信息,但这似乎不是一个选项,因为我可以看出,它们不共享公共类型 它们都有类似的方法,我需要调用它们,但我将编写一些逻辑来调用它们,我想将它们包装到它们自己的类中,然
public class ConnectionWrapper {
protected object _Conn;
public ConnectionWrapper(object Conn) {
_Conn = Conn;
}
public void Open() {
if (_Conn is SqlConnection) {
((SqlConnection) _Conn).Open();
} else if (_Conn is AdomdConnection) {
((AdomdConnection) _Conn).Open();
}
}
}
但我忍不住想,没有更好的办法了
我遇到了TypeMap类(见问题298976),这是一种更可读的方法,但我不知道如何使用返回值,但仍然想知道是否有更好的方法来实现它。使用-这是两种类型的共同点
SqlConnection
继承自DbConnection
,后者反过来实现IDbConnection
接口。此接口也由AdomdConnection
实现
因此,您可以使用IDbConnection
接口来表示这两种类型
SqlConnection由以下内容构成:DbConnection,iClonable
是的,但是DBConnection
本身扩展并实现了组件、IDbConnection、IDisposable
因此,您可以处理这两个对象,因为
IDbConnection
看起来像是可以用泛型解决的问题。但您不需要这样做,因为两个连接类已经实现了相同的接口。只需为OP充实这一正确答案,SqlConnection继承了实现IDbConnection的抽象类DBConnection。多亏了大家的回答——只是出于兴趣,如果没有可以传递的公共接口,但是有公共方法,那么该如何包装呢?您可以用您在问题中展示的相同方式包装它。