コンパイラ エラー CS1921Compiler Error CS1921

'method' に最も適しているオーバーロード メソッドには、初期化子要素の正しくないシグネチャが含まれます。The best overloaded method match for 'method' has wrong signature for the initializer element. 初期化可能な Add は、アクセス可能なインスタンス メソッドでなければなりません。The initializable Add must be an accessible instance method.

このエラーは、パブリックでない非静的 Add メソッドを持つクラスでコレクション初期化子を使用しようとしたときに生成されます。This error is generated when you try to use a collection initializer with a class that has no public non-static Add method. Add メソッドの保護レベル (privateprotectedinternal) が原因でメソッドがアクセスできない場合は、CS0122 が発生するため、このエラーが発生した場合は、メソッドが static として定義されていることを示していると考えられます。If the Add method is not accessible because of its protection level (private, protected, internal) then you will get CS0122, so that this error probably means that the method is defined as static.

Example

次の例では CS1921 が生成されます。The following example generates CS1921:

// cs1921.cs  
using System.Collections;  
public class C : CollectionBase  
{  
    public static void Add(int i)  
    {  
    }  
}  
public class Test  
{  
    public static void Main()  
    {  
        var collection = new C { 1, 2, 3 }; // CS1921  
    }  
}  

関連項目See also