コンパイラ エラー CS1113

更新 : 2007 年 11 月

エラー メッセージ

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

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

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

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

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

使用例

次のコードは 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;
    }
}

参照

参照

拡張メソッド (C# プログラミング ガイド)