Ich versuche, Max-Wert eines T [] - Array mit der folgenden Methode zurückzugeben. Ich verstehe nicht, warum Compiler hier beschwert T max = _genericList[0];
, dass Fehler cannot implicitly convert ...\GenericList(9) to ...\GenericList(123)
löst.C# Inkompatibilität in zwei T-Typen in der generischen Methode, die T-Typ zurückgeben
Warum sind diese beiden verschieden? Ich möchte das T [] einer GenericList-Klasse verwenden, um durch sie zu interpolieren und das Maximum/Minimum zu finden. Wie ist das möglich?
internal class GenericList<T>
{
private T[] _genericList;
private int _count;
private int _listInnitialLength;
public GenericList(int listLength)
{
_genericList = new T[listLength];
_count = 0;
_listInnitialLength = listLength;
}
public T Max<T>() where T : IComparable
{
T max = _genericList[0];
foreach (T item in _genericList)
{
if (Comparer<T>.Default.Compare(item, max) > 0)
{
max = item;
}
}
return max;
}
}
Vielen Dank Ich war mir nicht bewusst, dass Sie keine generische Methode in einer generischen Klasse verwenden können, die den gleichen Typ verwendet, der logisch korrekt ist. Es war alles meine Schuld. –