私は2つのクラスを持っています:
- 従業員
- 従業員の詳細
Employee
クラスには次のようなメソッドがあります。
public static Employee LoadEmployee(int id)
{
StringBuilder selectQuery = new StringBuilder();
string selectQuery = " my query with the parameter 'Id' ";
dbGenerator _db = dbGenerator.Instance.Database;
DbCommand selectCommand = _db.GetSqlStringCommand(selectQuery.ToString());
_db.AddInParameter(selectCommand, "@id", System.Data.DbType.String, Id);
//EXECUTE THE COMMAND
using (IDataReader dr = _db.ExecuteReader(selectCommand))
{
if (dr.Read())
{
result = new Employee();
Employee.LoadDataReader(result, dr);
}
dr.Close();
}
return result;
}
そして、クラスで同じことを行うメソッドがありEmployeeDetails
ます...戻り値の型以外はまったく変更されません。
コードの行数を最小限に抑える方法があると確信しています。また、C#ジェネリックを使用すると読みやすくなり、ジェネリックは複数の実装のオーバーヘッドなしでタイプ セーフを提供します。
このようにクラスオブジェクトselectQuery
を渡すことができるメソッドが必要ですParameterId
public static <T> LoadData<T>(Object object, string selectQuery, int paramId)
{
// do stuff
// return <T>results;
}
任意の提案をいただければ幸いです。