英語で読む

次の方法で共有


コンパイラ エラー CS1113

値の型 'name' で定義された拡張メソッド 'name' は、デリゲートを作成するために使用できません。

クラス型に対して定義された拡張メソッドは、デリゲートを作成するために使用できます。 値の型に対して定義された拡張メソッドは使用できません。

このエラーを解決するには

  1. 拡張メソッドをクラス型に関連付けます。

  2. メソッドを構造体の通常のメソッドにします。

次の例では、CS1113 が生成されます。

C#
// 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;  
    }  
}  

関連項目