Проверка расширения файла в AngularJs перед загрузкой

До сих пор существует большая путаница в понимании объема «защищенных внутренних» аксессуаров, хотя большинство из них правильно определено. Это помогло мне понять путаницу между «защищенными» и «защищенными внутренними»:

публика действительно публична внутри и снаружи сборки (публичный внутренний / открытый внешний)

protected действительно защищенный внутри и снаружи сборки (защищенный внутренний / защищенный внешний) (не допускается на классах верхнего уровня)

private действительно конфиденциальен внутри и снаружи сборки (частный внутренний / закрытый внешний) (не разрешен на верхнем уровне классы)

внутренне действительно публично внутри сборки, но исключается вне сборки, например private (общедоступный внутренний / исключенный внешний).

protected internal действительно общедоступен внутри сборки, но защищен вне сборки (открытый внутренний / защищенный внешний) (не допускается на классах высшего уровня)

Как вы видите, защищенный внутренний - очень странный зверь. Неинтуитивно.

Теперь возникает вопрос, почему Microsoft не создала (защищенный внутренний / исключенный внешний), или я предполагаю какой-то «закрытый защищенный» или «внутренний защищенный»? лол. Кажется неполным?

. Добавленный к путанице тот факт, что вы можете встраивать внутренние или защищенные внутренние вложенные элементы внутри защищенных, внутренних или частных типов. Почему вы получаете доступ к вложенному «защищенному внутреннему» внутри внутреннего класса, который исключает доступ к внешней сборке?

Microsoft говорит, что такие вложенные типы ограничены областью их родительского типа, но это не то, что говорит компилятор. Вы можете скомпилировать защищенные внутренние элементы внутри внутренних классов, которые должны ограничивать область только сборкой.

Для меня это похоже на неполный дизайн. Они должны иметь упрощенную сферу охвата всех типов для системы, которая четко рассматривает наследование, а также безопасность и иерархию вложенных типов. Это сделало бы совместное использование объектов чрезвычайно интуитивным и гранулированным, а не обнаружением доступности типов и элементов на основе неполной системы обзора.

13
задан Eugene 17 April 2016 в 22:52
поделиться