创建现有 c# class 的扩展 'copy'

create extended 'copy' of existing c# class

周围有很多class人:

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

可以使用就像:

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

所以 我正在搜索的 是 class:

的一种完美复制
public class SqlConnection{
    private System.Data.SqlClient.SqlConnection db;

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

这样我就可以像正常使用它一样 class,但有我自己的 小定制 :

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

是否有像 visual-studio-build-in 函数这样的快速解决方案?

一个人可以做几件事:

  1. Inheritance - 创建您自己的 class,它将继承自另一个并添加更多功能
  2. 写扩展方法 - 对于你的 SqlConnection 情况,因为它是 sealed class 你应该做的(通过选项 1)

扩展方法的简短示例:

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);