创建扩展'现有的c#类

本文关键字:扩展 创建 | 更新日期: 2023-09-27 18:01:21

许多类,如:

var db = new System.Data.SqlClient.SqlConnection();

可以使用 list,如:

db.Open();
db.Close();
//...

所以我要找的是类的完美副本:

public class SqlConnection{
    private System.Data.SqlClient.SqlConnection db;
    public SqlConnection() {
        //create SqlConnection
        db = new System.Data.SqlClient.SqlConnection();
    }
    public void Open() {
        db.Open();
    }
    //...
}

,这样我就可以像使用普通类一样使用它,但有我自己的小定制:

db.Open();
db.Close();
//...
db.MyOwnFunktion();

是否有一个快速的解决方案,像一个视觉工作室内置功能这样做?

创建扩展'现有的c#类

可以做几件事:

  1. 继承-创建自己的类,将继承不同的类,并将添加更多的功能
  2. 编写扩展方法-对于SqlConnection的情况,因为它是sealed类,这是你应该做的(超过option1)

扩展方法的简短示例:

public static class Extensions
{
    public static void DoSomething(this SqlConnection connection, int input)
    {
        //Do something
    }
}
//And then when you want to use it:
SqlConnection connection = new SqlConnection();
connection.DoSomething(3);