Лекс Айрин писал(а): К тому же небольшой префикс перед именем легко выполняет эту же роль.
Нет, он выполняет другую роль. А именно - проверку того, что никто не пытается присвоить переменной с целым типом значение с типом объекта. Вот именно такая проверка в современных иде и не нужна. Особенно в паскале. Т.е. это повторная проверка того, что уже проверено компилятором, и не имеет отношения к логике работы программы.
В моем примере префиксом служит название сущности (SampleForm), что позволяет легче следить за тем, что работа в коде относится к одной сущности, что и является некой проверкой логической целостности.
P.S. Кстати, топик навел меня на мысль, что имеет смысл отказаться от уникальности имен для разных встроенных типов. Типа такого:
- Код: Выделить всё
unit SampleForm;
class SampleForm = class(TForm);
class function GetInst: SampleForm of class;//Таки придется оставить возможность указать тип результата для избежание неочевидности.
end;
var SampleForm : SampleForm of class; // of class нужен на тот случай, если появяться тип рекорд и т.д.
class function SampleForm.GetInst: SampleForm of var;
begin
if SampleForm of var = nil then
SampleForm := SampleForm.Create; // тут компилятор и сам может догадаться, что чему присваивается.
result := SampleForm; // и тут тоже
end;
Как вам такой концепт?