Errore del compilatore CS0447

Aggiornamento: novembre 2007

Messaggio di errore

Gli attributi non possono essere utilizzati su argomenti di tipo, solo su parametri di tipo.
Attributes cannot be used on type arguments, only on type parameters

Questo errore si verifica quando si applica un attributo a un argomento di tipo presente in un'istruzione di chiamata. È possibile applicare un attributo a un parametro di tipo se quest'ultimo è incluso in una classe o nell'istruzione di dichiarazione di un metodo, come nell'esempio seguente:

class C<[some attribute] T> {…}

La seguente riga di codice genera questo errore. Si suppone che nella classe C, definita nella riga di codice precedente, sia incluso un metodo statico denominato MyStaticMethod.

C<[some attribute] T>.MyStaticMethod();

Esempio

Il seguente codice di esempio genera l'errore CS0447.

// CS0447.cs
using System;
namespace Test41
{
    public interface I<A> 
    {
        void Meth<B>();
    }
    public class B : I<int> 
    {
        void I<[Test] int>.Meth<X>() { }  // CS0447
    }
}