Error del compilador CS1113

Actualización: noviembre 2007

Mensaje de error

Los métodos de extensión 'nombre' definidos en el tipo de valor 'nombre' no se pueden usar para crear delegados.
Extension methods 'name' defined on value type 'name' cannot be used to create delegates.

Los métodos de extensión que se definen para tipos de clase se pueden utilizar para crear delegados. No así los métodos de extensión que se definen para tipos de valor.

Para corregir este error

  1. Asocie el método de extensión a un tipo de clase.

  2. Convierta el método en un método normal en la estructura.

Ejemplo

El ejemplo siguiente genera el error 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;
    }
}

Vea también

Referencia

Métodos de extensión (Guía de programación de C#)