我有以下類用於在通常從Oracle數據庫調用不同數據集時將代碼重複最小化。主要是我需要幫助來刪除重載的構造函數中的代碼重複,但任何其他建議也將被讚賞。C#重載的構造函數問題
public class UniformData
{
private string connection = "My Connection String";
private OracleConnection con;
private OracleCommand com;
private OracleDataReader reader;
public UniformData(string sql)
{
con = new OracleConnection(connection);
con.Open();
com = new OracleCommand(sql, con);
}
public UniformData(string sql, List<SqlParameters> myParams)
{
con = new OracleConnection(connection);
con.Open();
com = new OracleCommand(sql, con);
foreach (SqlParameters Param in myParams)
{
com.Parameters.Add(Param.ParamName, Param.ParamValue);
}
}
public OracleDataReader GetReader()
{
reader = com.ExecuteReader();
return reader;
}
~UniformData()
{
con.Close();
con.Dispose();
com.Dispose();
reader.Close();
reader.Dispose();
}
}
你不應該對這個班終結。終結器用於清理*非託管*資源,而不是用於處理受管資源。你應該實現'IDisposable'並在'Dispose'方法中處理組合對象,而不是任何終結器。 – Servy