Предупреждение компилятора (уровень 2) CS0280
"тип" не реализует шаблон "имя_шаблона". "имя метода" имеет неправильную сигнатуру.
Два оператора C#, foreach и using, используют предварительно определенные шаблоны collection и resource соответственно. Это предупреждение возникает, если компилятор не может соотнести какой-либо из этих операторов с его шаблоном из-за неправильной сигнатуры метода. Например, для шаблона collection требуется наличие метода MoveNext , который не имеет параметров и возвращает boolean
. Ваш код может содержать метод MoveNext , который имеет параметр или может возвращать объект.
Другой пример — шаблон resource и using
. Для шаблона resource требуется метод Dispose ; если вы определили свойство с тем же именем, вы получите это предупреждение.
Чтобы устранить это предупреждение, убедитесь, что сигнатуры метода в типе совпадают с сигнатурами соответствующих методов в шаблоне, а также убедитесь, что у вас нет свойств с тем же именем, что и у метода, требуемого шаблоном.
В следующем примере возникает ошибка CS0280.
// CS0280.cs
using System;
using System.Collections;
public class ValidBase: IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
yield return 0;
}
internal IEnumerator GetEnumerator()
{
yield return 0;
}
}
class Derived : ValidBase
{
// field, not method
new public int GetEnumerator;
}
public class Test
{
public static void Main()
{
foreach (int i in new Derived()) {} // CS0280
}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: