У меня есть следующий класс:C# Generic T назначить тип Кортеж
public static class Support<T>
{
public static T CreateKeyNameJSONTT(IEnumerable<Tuple<T, T>> a, Action<T> b)
{
T result = default(T);
try
{
foreach (var entry in a)
{
b((T)TypeDescriptor.GetConverter(typeof(T)).ConvertFromInvariantString("[ \"" + entry.Item1 + "\", " + entry.Item2 + "\" ]"));
}
result = (T)Convert.ChangeType(true, typeof(T));
}
catch
{
result = (T)Convert.ChangeType(false, typeof(T));
}
return result;
}
}
Я не могу показаться, чтобы назвать это правильно, хотя:
var result = Support.CreateKeyNameJSONTT(List<Tuple<int, string>> list, (string entry) =>
{
});
Ошибки я получаю «Использование списка универсального типа требует 1 аргумент "
Может ли кто-нибудь помочь в этом. Я ничего не делаю, поэтому могу ошибаться.
Вы передаете '' Tuple но метод ожидает '' Tuple . То есть оба члена кортежа должны иметь один и тот же тип –
. Замечание стороны: вы, вероятно, не видите строку кода, которая вызывает ошибку. В ответе Servy +1 есть исправления для кода, который вы указали, но похоже, что у вас что-то вроде 'new List()' где-то, что вызывает ошибку. –