我有以下类用于在通常从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