Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS1113

Metody rozszerzenia "name" zdefiniowane na typie wartości "name" nie mogą być używane do tworzenia delegatów.

Metody rozszerzeń zdefiniowane dla typów klas mogą służyć do tworzenia delegatów. Metody rozszerzeń zdefiniowane dla typów wartości nie mogą.

Aby poprawić ten błąd

  1. Skojarz metodę rozszerzenia z typem klasy.

  2. Ustaw metodę jako regularną na strukturę.

Przykład

Poniższy przykład generuje 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;  
    }  
}  

Zobacz też