Сразу три вопроса о модификаторах ограничения.
- 08.01.14 г.


Ответы на вопросы по поводу статьи «Модификаторы ограничений».


Вопрос 1.
«Может ли модификатор доступа Internal считаться модификатором ограничения в смысле различия кодов cs и exe? Если да, то в какой мере?».

Ответ.
Нет, ведь модификатор доступа Internal в  C#  указывает, что доступ к типу (и его членам) ограничен текущей сборкой. Или: обозначенный доступ актуален для программы в любом коде.


Вопрос 2.
«Язык Си Шарп настолько многообразен, что в нем должны быть какие-то намеки на ваши модификаторы ограничения. Так?»

Ответ.
Намеки везде можно найти. Например, в  C#  (подчеркиваем – в этом языке программирования) буллы нельзя перегнать в инты (тип значения bool нельзя преобразовать в int). Это действительно концептуальное ограничение (технически-то можно было бы реализовать), но все же не на тип, а на его преобразование. А модификатор ограничения – ограничение на тип.


Вопрос 3.
«В статье Вы привели пример об «ограничении new». Но ведь есть же и «модификатор new». Чем второй не модификатор ограничения?»

Ответ.
Модификатор new скрывает наследуемый член от члена базового класса. Это функциональное ограничение, а никак не концептуальное. Поэтому модификатор new не является в принципе модификатором ограничения. И ограничение new по смыслу ближе, поэтому и было приведено в качестве примера.


Согласование терминов.
Дело в том, что в  C#  есть модификаторы, в т.ч. модификаторы доступа, про что было сказано в статье. И новодиалектические модификаторы ограничения могут считаться одним из видов модификаторов, причем это, как указано в статье, «важно при решении ряда задач, по крайней мере, диалектического программирования (а как там будет с обычным программированием, пока не понятно)».