C#'泛型问题,如何通过Func传递输入和输出

Jam*_*mie 1 c# generics func

private static K ExecuteStoredProcedure<K>(string connectionString, string storedProcedure, SqlParameter[] parameters, Func<I, K> readFunction)
Run Code Online (Sandbox Code Playgroud)

示例用法如下所示:

 return ExecuteStoredProcedure<SqlDataReader, Dictionary<string, string>>(
     connectionString, 
     "uspSearchStatisticsSelectByTokenPerDayGroupByDate", 
     parameters, 
     (reader) =>
     {
         reader.Read();
         int readCount = reader.FieldCount;

         Dictionary<string, string> results = new Dictionary<string, string>();
         results.Add("FailedRequests", Convert.ToString(reader[5]));
         results.Add("TotalRequests", Convert.ToString(reader[4]));
         results.Add("AverageResponseTime", Convert.ToString(reader[3]));

         return results;
     }
 );
Run Code Online (Sandbox Code Playgroud)

编译器回来了

错误520无法找到类型或命名空间名称"我"(您是否缺少using指令或程序集引用?)

但我认为它应该可以参考吗?

更新:我试图寻找太通用的东西而不是真的需要它.

我跟着以下...... private static K ExecuteStoredProcedure<K>(string connectionString, string storedProcedure, SqlParameter[] parameters, Func<SqlDataReader, K> readFunction)

mil*_*ose 9

你的功能是通用的IK.签名需要是:

K ExecuteStoredProcedure<I, K>(...)
Run Code Online (Sandbox Code Playgroud)