Попробованная этот код:Возвращает тот же тип экземпляра в качестве типа входа в дженериков
public static T NotEmpty<T, X> (T instance, string paramName = null) where T : IEnumerable<X>
{
if (instance != null)
if (instance.Any())
return instance;
throw new Exception();
}
static void Main (string[] args)
{
var list = new List<int>() { 1, 2, 3 };
var t = NotEmpty (list);
}
EDIT: Так что я хочу передать любой тип, который реализует IEnumerable
как List<int>
и возвращать экземпляр одного типа (LIst<int>
).
error:
var t = NotEmpty (list);
The type arguments for methodNoName.Program.NotEmpty<T,X>(T, string)
cannot be inferred from the usage. Try specifying the type arguments explicitly.
где же говорит, что компилятор, в каком месте? – Thomas