Errore del compilatore CS1113

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile utilizzare i metodi di estensione 'nome' definiti nel tipo di valore 'nome' per creare delegati.
Extension methods 'name' defined on value type 'name' cannot be used to create delegates.

I metodi di estensione definiti per i tipi di classe possono essere utilizzati per creare delegati. I metodi di estensione definiti per i tipi di valore non possono essere utilizzati.

Per correggere l'errore

  1. Associare il metodo di estensione a un tipo di classe.

  2. Rendere regolare il metodo nella struttura.

Esempio

Nell'esempio seguente viene generato l'errore CS1113:

// cs1113.cs
using System;
public static class Extensions
{
    public static S ExtMethod(this S s)
    {
        return s;
    }
}

public struct S
{
}

public class Test
{
    static int Main()
    {
        Func<S> f = new S().ExtMethod; // CS1113
        return 1;
    }
}

Vedere anche

Riferimenti

Metodi di estensione (Guida per programmatori C#)