2016-08-09 2 views
1

Есть много классов вокруг как:создать расширенную 'копию' существующих классов C#

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

вы можете использовать IST как:

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

Есть быстрое решение, как визуальному-студийной встроенные функции, чтобы сделать это?

+1

Возможно, вы имеете в виду наследование от SqlConnection и расширяете его своей собственной функцией? –

+0

inheritance ... :) – Dexion

+0

'SqlConnection' запечатан и не может быть унаследован. Вам нужно создать обертку. Что случилось с кодом, который вы опубликовали? – smoksnes

ответ

3

можно сделать несколько вещей:

  1. Inheritance - создать свой собственный класс, который наследует от другого один и добавит больше функциональных возможностей
  2. методы расширения записи - Для вашего случая SqlConnection из-за его sealed класс, который является то, что вы должны сделать (более option1)

Короткий пример EXTENS ионный метод:

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

, так что я ищу. Не могли бы вы добавить код линии, чтобы я знал, как это сделать? – Michael1248

+0

You'r the best :) спасибо – Michael1248

+0

@Gilad_Green Я хотел сделать это раньше, но я не могу;) теперь я могу – Michael1248

 Смежные вопросы

  • Нет связанных вопросов^_^