2016-08-09 61 views
1

Es gibt viele Klassen um wie schaffenerweiterte 'Kopie' der bestehenden C# -Klasse

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

so , was ich bin auf der Suche für ist eine Art perfekte Kopie der Klasse:

public class SqlConnection{ 
    private System.Data.SqlClient.SqlConnection db; 

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

so, dass ich es wie eine normale Klasse verwenden kann, aber mit meinen eigenen wenig Anpassungen:

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

Gibt es eine schnelle Lösung wie eine visual-studio-build-in-Funktion, dies zu tun?

+1

Wahrscheinlich meinst du Vererbung von SqlConnection und erweitern es mit deiner eigenen Funktion? –

+0

Vererbung ... :) – Dexion

+0

'SqlConnection' ist versiegelt und kann nicht vererbt werden. Sie müssen einen Wrapper erstellen. Was stimmt nicht mit dem Code, den du gepostet hast? – smoksnes

Antwort

3

Man kann mehrere Dinge tun:

  1. Inheritance - Ihre eigene Klasse erstellen, die von einer anderen erben werden und wird mehr Funktionalität
  2. schreiben Erweiterungsmethoden hinzufügen - Für Ihren Fall von SqlConnection aufgrund wobei eine sealed Klasse, die ist, was Sie (über option1) tun sollten

Kurz Beispiel extens Ionenmethode:

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

, so dass was ich suche. Könnten Sie eine Codezeile hinzufügen, damit ich weiß, wie es geht? – Michael1248

+0

Du bist der Beste :) danke – Michael1248

+0

@Gilad_Green Ich wollte es früher machen, aber ich konnte nicht;) jetzt kann ich – Michael1248