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


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

"член1" скрывает унаследованный член "член2" Если скрытие было выполнено намеренно, используйте ключевое слово new.

Член был объявлен с тем же именем, что и член в базовом классе. Однако новый модификатор не использовался.

В следующем примере возникает ошибка CS0108. Вы можете разрешить CS0108 одним из двух способов:

  • Переименуйте элемент в производном классе, если скрытие элемента не было предназначено.

  • new Используйте модификатор, чтобы объявить, что производный элемент скрытия базового элемента был преднамеренным.

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

namespace MyNamespace;

public class BaseClass
{
    public int i = 1;
}

public class DerivedClass : BaseClass
{
    public static int i = 2;   // CS0108
    // Use the following line instead:
    // public static new int i = 2;

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

См. также