コンパイラ エラー CS0308
型引数を持つ、非ジェネリック型または非ジェネリック メソッド 'identifier' を使用できません。
メソッドまたは型はジェネリックではありませんが、型引数とともに使用されました。 このエラーを回避するには、山かっこと型引数を削除するか、メソッドまたは型をジェネリックのメソッドまたは型として再宣言します。
次の例では CS0308 が生成されます。
C#
// CS0308a.cs
class MyClass
{
public void F() {}
public static void Main()
{
F<int>(); // CS0308 – F is not generic.
// Try this instead:
// F();
}
}
次の例でも CS0308 が生成されます。 エラーを解決するには、ディレクティブ "using System.Collections.Generic" を使用します。
C#
// CS0308b.cs
// compile with: /t:library
using System.Collections;
// To resolve, uncomment the following line:
// using System.Collections.Generic;
public class MyStack<T>
{
// Store the elements of the stack:
private T[] items = new T[100];
private int stack_counter = 0;
// Define the iterator block:
public IEnumerator<T> GetEnumerator() // CS0308
{
for (int i = stack_counter - 1 ; i >= 0; i--)
yield return items[i];
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。