Ich führe in C# generische Schnittstellen und Klassen, und es gibt ein Problem, mit dem ich nicht umgehen konnte, und ich werde den Code hier für wenn jemand teilen könnte mir helfen.Ich habe einen Konflikt mit Typen mit generischen Schnittstellen und Klassen mit C#
enum ListError
{
Ok = 0,
NoMemory,
ErrorPosition
}
interface IList<T>
{
int End();
ListError Insert<T>(T x, int p);
}
class ListArrays<T>: IList<T>
{
const int MAX = 100;
T [] data = new T[MAX];
int last = 0;
public int End()
{
return last+1;
}
ListError Insert<T>(T x, int p)
{
if (last >= MAX)
return ListError.NoMemory;
if (p > last || p < 0)
return ListError.ErrorPosition;
for (int q = last; q >= p; q--)
data[q] = data[q - 1];
last++;
data[p] = x;
return ListError.Ok;
}
}
ich mit einem Kompilierung-Fehler in der Leitung
data[p] = x;
bin kämpfen in dem es heißt:
Cannot implicitly convert type 'T [c:\Users\MartinD_PC\Documents\VisualStudio 2013\Projects\Aho_Hopcroft_Ullman\Aho_Hopcroft_Ullman\Chapter_2\ListaArreglos.cs(9)]' to 'T'
Bitte lesen Sie Compilerwarnungen; Sie sollten eine Warnung erhalten haben, die das Problem erklärt hat. –