Freigeben über


Compilerfehler CS0308

Aktualisiert: November 2007

Fehlermeldung

Typ- oder Methoden-"Bezeichner" ist nicht generisch und kann daher nicht mit Typargumenten verwendet werden.
The non-generic type-or-method 'identifier' cannot be used with type arguments.

Die Methode oder der Typ ist nicht generisch, aber wurde mit Typargumenten verwendet. Um diesen Fehler zu vermeiden, entfernen Sie die spitzen Klammern und Typargumente oder deklarierieren die Methode oder den Typ erneut als generische Methode oder generischen Typ.

CS0308 wird im folgenden Beispiel generiert:

// CS0308a.cs
class MyClass
{
   public void F() {}
   public static void Main()
   {
      F<int>();  // CS0308 – F is not generic.
      // Try this instead:
      // F();
   }
}

Im folgenden Beispiel wird ebenfalls CS0308 generiert. Verwenden Sie zum Beheben des Fehlers die Direktive "using System.Collections.Generic".

// CS0308b.cs
// compile with: /t:library
using System.Collections;
// To resolve, uncomment the following line:
// using System.Collections.Generic;
public class MyStack<T>
{
    // Store the elements of the stack:
    private T[] items = new T[100];
    private int stack_counter = 0;

    // Define the iterator block:
    public IEnumerator<T> GetEnumerator()   // CS0308
    {
        for (int i = stack_counter - 1 ; i >= 0; i--)
        yield return items[i];
    }
}