2016-08-09 19 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

繼承... :) – Dexion

+0

'SqlConnection'是密封的,不能被繼承。你需要創建一個包裝器。你發佈的代碼有什麼問題? – smoksnes

回答

3

人們可以做幾件事情:

  1. Inheritance - 創建自己的類,從一個不同的繼承,將增加更多的功能
  2. 寫擴展方法 - 爲了您的SqlConnection情況下,由於它是一個sealed類,它是你應該做的(在選項1)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

找你最好的:)謝謝 – Michael1248

+0

@Gilad_Green我想這樣做的較早,但我coudn't;)現在我可以 – Michael1248