创建现有 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 函数这样的快速解决方案?
一个人可以做几件事:
- Inheritance - 创建您自己的 class,它将继承自另一个并添加更多功能
- 写扩展方法 - 对于你的
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);
周围有很多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 函数这样的快速解决方案?
一个人可以做几件事:
- Inheritance - 创建您自己的 class,它将继承自另一个并添加更多功能
- 写扩展方法 - 对于你的
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);