コンパイラ エラー CS1113Compiler Error CS1113

値の型 'name' で定義された拡張メソッド 'name' は、デリゲートを作成するために使用できません。Extension methods 'name' defined on value type 'name' cannot be used to create delegates.

クラス型に対して定義された拡張メソッドは、デリゲートを作成するために使用できます。Extension methods that are defined for class types can be used to create delegates. 値の型に対して定義された拡張メソッドは使用できません。Extension methods that are defined for value types cannot.

このエラーを解決するにはTo correct this error

  1. 拡張メソッドをクラス型に関連付けます。Associate the extension method with a class type.

  2. メソッドを構造体の通常のメソッドにします。Make the method a regular method on the struct.

Example

次の例では、CS1113 が生成されます。The following example generates 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;  
    }  
}  

関連項目See also