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


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

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

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

Член 'member1' скрывает унаследованный член 'member2'. При умышленном скрытии используйте ключевое слово new.
'member1' hides inherited member 'member2'. Use the new keyword if hiding was intended.

Переменная была объявлена с таким же именем, что и переменная базового класса. Однако ключевое слово new использовано не было. Это предупреждение сообщает о том, что следует использовать ключевое слово new; переменная была объявлена так, как будто в объявлении было использовано ключевое слово new.

Следующий пример проводит к генерированию ошибки CS0108:

// CS0108.cs
// compile with: /W:2
using System;

namespace x
{
   public class clx
   {
      public int i = 1;
   }

   public class cly : clx
   {
      public static int i = 2;   // CS0108, use the new keyword
      // the compiler parses the previous line as if you had specified:
      // public static new int i = 2;

      public static void Main()
      {
         Console.WriteLine(i);
      }
   }
}