Прочитать на английском

Поделиться через


Предупреждение компилятора (уровень 2) CS0279

Тип "имя_типа" не реализует шаблон "имя_шаблона". Метод "имя_метода" либо статический, либо не являющийся открытым.

В C# существует несколько операторов, основывающихся на заданных шаблонах, таких как foreach и using. Например, foreach основывается на классе коллекции, реализующем шаблон перечисления. Эта ошибка возникает, если компилятору не удается выполнить сопоставление из-за того, что метод объявляется как static или не public. Методы в шаблонах должны быть экземплярами классов и должны быть открытыми.

Пример

В следующем примере возникает ошибка CS0279:

// CS0279.cs  
  
using System;  
using System.Collections;  
  
public class myTest : IEnumerable  
{  
    IEnumerator IEnumerable.GetEnumerator()  
    {  
        yield return 0;  
    }  
  
    internal IEnumerator GetEnumerator()  
    {  
        yield return 0;  
    }  
  
    public static void Main()  
    {  
        foreach (int i in new myTest()) {}  // CS0279  
    }  
}