【问题标题】:Cannot create a generic method: "T" not found无法创建通用方法:未找到“T”
【发布时间】:2015-08-21 14:53:52
【问题描述】:

我正在尝试实现一个返回通用列表 (List) 的方法,但我不断收到此错误消息:

找不到类型或命名空间名称“T”(您是否缺少 using 指令或程序集引用?)

这是我的方法代码:

public static List<T> doQuery(string query)
{
    SQLiteCommand com = new SQLiteCommand(query, SQLiteManager.connection);
    SQLiteDataReader reader = com.ExecuteReader(CommandBehavior.Default);
    while (reader.Read())
    {
        //other code
    }
}

为什么在这种情况下 T 不被识别为泛型类型?

【问题讨论】:

  • public static List&lt;T&gt; doQuery&lt;T&gt;(string query) 应该这样做。您必须在类/方法的名称之后声明泛型类型。

标签: c# generics compiler-errors ado.net


【解决方案1】:

你需要告诉方法什么是“T”,现在你的方法不知道 T 是什么。 T 在编译时是已知的,语言不会当场找出类型。

这是一个例子:static List&lt;T&gt; GetInitializedList&lt;T&gt;(T value, int count)

参考这里:http://www.dotnetperls.com/generic-method

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-10-06
  • 2012-05-14
  • 2010-09-09
  • 2018-06-28
相关资源
最近更新 更多