Lire en anglais

Partager via


Erreur du compilateur CS0308

Le type ou la méthode non générique 'identificateur' ne peut pas être utilisé avec des arguments de type.

Le type ou la méthode n’est pas générique, mais il ou elle a été utilisé(e) avec des arguments de type. Pour éviter cette erreur, supprimez les crochets et les arguments de type, ou redéclarez la méthode ou le type comme méthode ou type générique.

L’exemple suivant génère l’erreur CS0308 :

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

L’exemple suivant génère également l’erreur CS0308. Pour résoudre l’erreur, utilisez la directive « 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];  
    }  
}