创建扩展'复制'现有的c#类

时间:2016-08-09 07:40:15

标签: c# function class sqlconnection

有很多类,例如:

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

可以使用类似:

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

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

1 个答案:

答案 0 :(得分:3)

可以做几件事:

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

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