Почему запечатанное ключевое слово не включено в список модификаторов доступа? - PullRequest
2 голосов
/ 18 августа 2010

Я думаю, sealed следует включить в список модификаторов доступа на языке C #.Может кто-нибудь сказать причину, почему это было исключено?

Ответы [ 4 ]

9 голосов
/ 18 августа 2010

Это не модификатор доступа, это связано с тем, может ли класс наследоваться или нет ...

6 голосов
/ 18 августа 2010

Модификатор доступа определяет , кто может получить доступ к методу или классу, и , когда (то есть: private: только члены класса, public:все остальные и т. д.).Пометка метода или класса как sealed означает, что он не может быть унаследован.В нем ничего не говорится о access per se.

Правильно сказано: вам все равно нужно добавить модификатор доступа, если вы используете ключевое слово sealed (если модификатор доступа по умолчанию вам не подходит).

Ваша путаница может заключаться в том, что оба ключевых слова относятся к уровням защиты.Это вроде как правда, но у нас нет понятия модификатора защиты.Ключевое слово sealed называется модификатором sealed , потому что оно изменяет класс или метод, который необходимо отключить.Это похоже на логический переключатель: класс или метод либо запечатаны, либо нет, независимо от их модификаторов доступа.

Чтобы добавить к путанице, существуют запечатанные средства доступа , что означаетчто получение метода доступа (gettor / settor) не допускается (стандарт C # 10.7.5).

5 голосов
/ 18 августа 2010

Потому что если вы не можете наследовать от класса, это не значит, что вы не можете получить к нему доступ.

1 голос
/ 18 августа 2010

Все следующие допустимые определения классов содержат sealed классы, но все они имеют разные уровни доступа, так что вы можете видеть, что sealed не является модификатором доступа и, следовательно, не указывается Microsoft как единый:

public sealed class MyPublicClass
{
}

internal sealed class MyInternalClass
{
}

private sealed class MyPrivateClass
{
}

Вы должны верить, что Microsoft знает кое-что о языке, который они создали:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...