如何区分T和IList <T>

Mur*_*nze 4 c# generics

我有两种方法:

public static int Insert<T>(this System.Data.IDbConnection connection, T param)
public static int Insert<T>(this System.Data.IDbConnection connection, IList<T> param)
Run Code Online (Sandbox Code Playgroud)

当我尝试这样的事情时:

connection.Insert(new List<Foo>());
Run Code Online (Sandbox Code Playgroud)

调用错误的方法(第一种方法).

我怎样才能使它工作?

Mat*_*and 5

如果存在可以以相同方式隐式调用的泛型重载,则必须使用显式调用.

此代码将调用第二个重载.

connection.Insert<Foo>(new List<Foo>());
Run Code Online (Sandbox Code Playgroud)