在C#中是否可以将两个类似的类函数包装成一个类?

在C#中是否可以将两个类似的类函数包装成一个类?,c#,C#,我正在使用C#中的SqlConnection和AdomdConnection对象 SqlConnection由以下内容构成:DbConnection,iClonable AdomdConnection由以下各项构成:组件、IDbConnection、IDisposable、IClonable 我希望我可以使用一个公共接口或类类型来传递信息,但这似乎不是一个选项,因为我可以看出,它们不共享公共类型 它们都有类似的方法,我需要调用它们,但我将编写一些逻辑来调用它们,我想将它们包装到它们自己的类中,然

我正在使用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。多亏了大家的回答——只是出于兴趣,如果没有可以传递的公共接口,但是有公共方法,那么该如何包装呢?您可以用您在问题中展示的相同方式包装它。