Цитата:
Офсайт умер, это да, а вот напрямую с Торри нормально скачалось.
да.. ошибся.
--н
неплохо бы нам тут шапку, раз уж мы застряли с этой ветке надолго
Офсайт умер, это да, а вот напрямую с Торри нормально скачалось.
пожалуйста, додавите япошку:
http://qc.embarcadero.com/wc/qcmain.aspx?d=125396
Походу то, что хочет Александр - на этапе компиляции не получить,
Под капотом у анонимного метода обьект с интерфейсом.
Не получить совсем, ибо интерфейс надо чем-то "удерживать" ... TObject as IObject - это же ведь не какое-то приведение типов в конце то концов! Ссылкой на метод экземпляра точно не удержать. Забавная хотелка у кого-то.
Походу то, что хочет Александр - на этапе компиляции не получить, т.к. даже для тех же абстрактных методов, если они не реализованы, компилятор вместо прямого вызова скрыто генерирует вызов метода _AbstractError, а в случае интерфейса - у нас нет на этапе компиляции информации о реализующем его классе и позднее связывание не сделать, т.к. нельзя компилятору что-нибудь магически догенерировать к чужому реализующему классу, которого к тому же и нет. Остается только динамический каст.
абстрактных методов, если они не реализованы, компилятор вместо прямого вызова скрыто генерирует вызов метода _AbstractErrorне говори ерунды. Виртуальные вызовы в Delphi всегда выполняются виртуально. Другое дело, что для абстрактного метода генерируется заглушка, перенаправляющая на AbstractError. Доходит, в чем разница? Не вызов генерируется, а заглушка абстрактного метода. А вызов любого вирт метода всегда выглядит одинаково.
а в случае интерфейса - у нас нет на этапе компиляции информации о реализующем его классе и позднее связывание не сделать, т.к. нельзя компилятору что-нибудь магически догенерировать к чужому реализующему классу, которого к тому же и нет.зачем что-то догенерировать? Аноним - это всегда "внешняя обертка", а не указатель. Всегда для нее генрируется экземпляр класса, и в это классе есть машинный код для процедуры вызова. Этой процедуре может содержать и вызов метода класса, и просто код. Так почему же нельзя сделать вызов интерфейсного метода?
то-то и оно.
Под капотом у анонимного метода обьект с интерфейсом.
Это я в курсе Я не понимаю одного: зачем народ себе геморрой придумывает
в несмешных шутках(иначе для чего смайлы?). Меня лично, это разражает.
Прошу, не говори лишь бы что.
По теме, что плохого, если аноним сможет удерживать указатель на метод интерфейса?
Лишь бы что? Может, это ссылка на метод интерфейса, которая должна удерживать интерфейс, чтобы потом аноним вызвал _Release когда умрёт - лишь бы что? Кто из нас чушь морозит?
да, ты в ауте. и разумеется, аноним должен удерживать инстанс интефейса. Содержит же ссылка на метод сам инстанс метода.
Аноним удерживать интерфейс? Т.е. ты предлагаешь добавить ссылку на интерфейс (который удерживается анонимом) в объект анонима???!!! I'm out.
Проще надо быть. Смайлы - это настроение человека. Если для вас улыбка - это признак насмешки/шутки, то смените коллектив.
В чем проблема? ссылка на метод в дельфи всегда захватывает и экзепляр.
Безотносительно ваших терок... В мобильном компиляторе, где имеется ARC, делегат, оказывается, не удерживает объект, хотя, по логике, должен бы.
Вышла бесплатная редакция AppMethod http://www.appmethod.com/pricing , которая содержит в себе только... C++. Что-то я их не понимаю...а что удивительного? Думал, что-то ценное они на халяву предложат?
Кто-нибудь пробовал в этом AppMethod разрабатывать? Какие впечатления?
Намного удобнее, чем, к примеру, в Eclipse под Андроид?
Цитата: Лишь бы что? Может, это ссылка на метод интерфейса, которая должна удерживать интерфейс, чтобы потом аноним вызвал _Release когда умрёт - лишь бы что? Кто из нас чушь морозит?
Аноним удерживать интерфейс? Т.е. ты предлагаешь добавить ссылку на интерфейс (который удерживается анонимом) в объект анонима???!!! I'm out.
отладка кода, где такое используется, станет тихим ужасом для программиста. Таким образом, вполне возможно, что запрашиваемая вами фича не реализована "by design".да ну брось.. Какой там дизайн у этих мартышек? Х..м груши околачивать -- вот их дизайн.
Что у тебя вызывается? первая или вторая? думаю вторая))я явно указал, что у меня вызывается.
В .NET строковый тип данных, да как и все типы унаследован от System.Object, что дает возможность запихнуть в этот тип данных все относящиеся к нему методы и путаницы не возникает вроде как. А еще добротная тема методы расширения в C# http://msdn.microsoft.com/ru-ru/library/bb383977.aspxой перестань. Это профанация, когда и value типы, и классы(ссылочные типы) наследуются из одного корня.
Как зачем? UTF8String это = type AnsiString(65001); т.е. новый тип (не псевдоним) да еще с механизмом авто-конвертирования. А функциря принимает обычный AnsiString т.е. строку с кодировкой дефолтной локали. Вот компилятор тебя и предупреждает, что будет конвертировать из UTF8 в ANSI (и тут, кстати, возможна потеря данных). Все правильно.ну да.. верно.. Хотя и ты не до конца догнал: там преобразование идет не по пути
Хотя и ты не до конца догнал
W1057 Implicit string cast from 'UTF8String' to 'string'
W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString'
интересно, каково было бы поведение,есл Utf8String был бы объявлен без type?
Вышла бесплатная редакция AppMethod http://www.appmethod.com/pricing , которая содержит в себе только... C++. Что-то я их не понимаю...
Ко всему прочему после 30 дней можно разрабатывать только под Ведро с диагональю не более 6 дюймов.
Я глубоко убежден, что о качестве и пригодности(и перспективности) фреймворка(среда/компилятор/библиотеки) следует судить по силе лишь одного направления: деплой->отладчик.
имея экземпляр, и указатель, вызов совершить тривиально. Нет никакой принципиально разницы между указателем на вирт метод, и методом интерфейса. Они суть одно и то же
да ну брось.. Какой там дизайн у этих мартышек? Х..м груши околачивать -- вот их дизайн.
Цитата: отладка кода, где такое используется, станет тихим ужасом для программиста. Таким образом, вполне возможно, что запрашиваемая вами фича не реализована "by design".
совсем запутался в различной логике работы операторов AND и XOR в Delphi и Visual Basic.
Эммм... мне кажется, что это всё равно что сравнивать операторы + или - в Delphi и Basic`е
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
Предыдущая тема: Отмена встречи в Outlook из Excel VBA