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


Ошибка компилятора CS0668

Обновлен: Ноябрь 2007

Сообщение об ошибке

Имена двух индексаторов различаются; для каждого индексатора в пределах типа следует использовать атрибут IndexerName с одним и тем же именем
Two indexers have different names; the IndexerName attribute must be used with the same name on every indexer within a type

Значение, переданное атрибуту IndexerName, должно быть одним и тем же для всех индексаторов в типе. Дополнительные сведения об атрибуте IndexerName см. в разделе Класс IndexerNameAttribute.

Следующий пример приводит к возникновению ошибки CS0668.

// CS0668.cs
using System;
using System.Runtime.CompilerServices;

class IndexerClass
{
   [IndexerName("IName1")]
   public int this [int index]   // indexer declaration
   {
      get
      {
         return index;
      }
      set
      {
      }
   }

   [IndexerName("IName2")]
   public int this [string s]    // CS0668, change IName2 to IName1
   {
      get
      {
         return int.Parse(s);
      }
      set
      {
      }
   }

   void Main()
   {
   }
}