Netspirit писал(а):
но это, всё же, "особенности реализации", на которые не стоит полагатьсяНу не знаю даже...
Вообще-то говоря - да. Но, если в опцию языка заложены счетчики ссылок для некого типа, за которыми он следит неусыпно, тогда и нулевая инициализация должна быть опцией языка.
А то ведь так можно договориться и до TRY-FINALLY блоков вокруг строковых переменных - дескать это твои проблемы, а не языка.
Наверное, возможности перепихивать все чего ни поподя на пользователя зависят и от языка, во многом.
Скажем, в CPP - можно сказать: не боярин, в конструкторе пропиши чего тебе надо.
А у нас - ни одного ведь файла не останется не тронутым, если мы начнем строковые переменные обнулять
Это были просто мысли вслух (типа - наплевать и забыть).
А теперь соображения...
По хорошему если, то наш _StrCmp надо в KOL помещать, под именем _StrSatisfy.
Ничего особо криминального, но в результирующем коде могут оказать две вышеуказанные функции (одна наша, одна KOL-овская) обладающие тождественным функционалом. Как оказалась.
Скажем, при использовании в схеме DirTools.doGetSize и StrMask.doCompare (это не единственный вариант).
Теоретически, можно и наоборот... Но наша то - по любому красивше.