这可能很棘手。 我有7个函数具有几乎相同的签名,但每个函数调用7个其他函数,同样具有相似的签名。我想把它们结合起来所以我只有2个。 以下是我的函数的3个简化版本:
private async Task<IList<T>> QueryAsync<T>(string storedProcedureName, OracleDynamicParameters parameters = null)
{
// Get our models
var models = await this._connection.QueryAsync<T>(storedProcedureName, parameters, commandType: CommandType.StoredProcedure);
// Return our list
return models.ToList();
}
private async Task<IList<T>> QueryAsync<T, TSecond>(string storedProcedureName, Func<T, TSecond, T> map, string splitOn, OracleDynamicParameters parameters = null)
{
// Get our models
var models = await this._connection.QueryAsync<T, TSecond, T>(storedProcedureName, map, parameters, commandType: CommandType.StoredProcedure, splitOn: splitOn);
// Return our list
return models.ToList();
}
private async Task<IList<T>> QueryAsync<T, TSecond, TThird>(string storedProcedureName, Func<TFirst, TSecond, TThird, TFirst> map, string splitOn, OracleDynamicParameters parameters = null)
{
// Get our models
var models = await this._connection.QueryAsync<T, TSecond, TThird, T>(storedProcedureName, map, parameters, commandType: CommandType.StoredProcedure, splitOn: splitOn);
// Return our list
return models.ToList();
}
我想做的是以某种方式将它们结合起来。所以以某种方式检查已经传递了多少类型并调用正确的签名。 任何帮助将不胜感激:D
答案 0 :(得分:0)
怎么样:
public Dimension getPreferredSize() {
return new Dimension(1020,500);
}
这意味着params上的一些逻辑和它们上的空逻辑(可空):基本上,如果最后一个为null,则将它们排除在外。
这样你只会有一个大功能(最通用的功能)。