Я где-то читал
"Абстрактные и Запечатанные модификаторы эквивалентны классу, статическому"
Я также обнаружил, что
"Когда вы объявляете статический класс, внутри компилятор отмечает абстрактное и закрытое имя класса и создает частный конструктор в коде IL
Итак, я решил сделать это:
static class A
{
public static void test()
{
Console.WriteLine("test");
}
}
Теперь класс "A" не может быть унаследован и не создан.
Итак, напишем class B
с помощью abstract
, чтобы предотвратить создание экземпляра и использовать sealed
для предотвращения наследования.
Но этот подход терпит неудачу.
который должен быть эквивалентен
public abstract sealed class B
{
private B()
{
}
public void test()
{
Console.WriteLine("test");
}
}
But I recieve an error stating "error CS0418:
B ': абстрактный класс не может быть запечатан или статичным ". Любые идеи, почему это невозможно?
Заранее благодарим за ваши ответы.