|
две функции одно название?
|
|||
---|---|---|---|
#18+
Приветствую, форумчане. Как известно, в VBA среди строковых функций есть функции с одинаковыми названиями (почти), но возвращающие/принимающие разные типы значений Код: vbnet 1. 2. 3. 4. 5.
Различие только в символе доллар ($). Как бы самому такое написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 07:53 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Панург, А что мешает? Бери и добавляй символы типа $ для обозначения типа переменной или функции вместо использования As и типа данных после объявления, их несколько символов, посмотри в хелпе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 08:07 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
MrShinПанург, А что мешает? Бери и добавляй символы типа $ для обозначения типа переменной или функции вместо использования As и типа данных после объявления, их несколько символов, посмотри в хелпе.Пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 08:20 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ПанургMrShinПанург, А что мешает? Бери и добавляй символы типа $ для обозначения типа переменной или функции вместо использования As и типа данных после объявления, их несколько символов, посмотри в хелпе.Пробовал? Я не пробовал но попробую. А в чем дело? (символ не дает вставить). Даже интеоесно. Попробовал все создается, а в чем пробдемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 08:36 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Сорри, не обратил внимания, что нужно именно 2 функции. Нет, это нельзя, с полиморфизмом и наследованием у Акцесса беда. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 08:39 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ROIПопробовал все создается, а в чем пробдемы.Прочти внимательно заголовок топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 08:50 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ПанургROIПопробовал все создается, а в чем пробдемы.Прочти внимательно заголовок топика. Я это прочитал но потом посмотрел что вы ввиду имели. Заголовок "Две функции одно название" а ниже вы сами и поправляетесь. >> Как известно, в VBA среди строковых функций есть функции с одинаковыми названиями (почти) И чего это я не правильно увидел? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:01 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ПанургКак бы самому такое написать? Знак доллара - это квалификатор типа значения, с ним возвращается String, а без него Variant(String). А имя у этих функций совпадает. В модуле такую пару определить не удастся. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:18 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Akina, это я и сам знаю. Но ведь они существуют, значит как-то можно... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:33 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ПанургНо ведь они существуют, значит как-то можно... Совсем не факт. VBA вряд ли писан на самом VBA, а там можно было сделать как угодно. Нет полиморфизма, хоть ты тресни, не сделаешь две функции с одинаковым именем, но разными типами данных в одном модуле. В разных модулях сделать - они будут просто перегружать друг друга, если модули формы и стандартный или генерировать ошибку, если оба стандартные модули. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:43 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ПанургAkina, это я и сам знаю. Но ведь они существуют, значит как-то можно... Попробовал создать две функции под одним именем с доларом(не дает) Тогда может другой символ выбрать или нужен именно знак доллара? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:46 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
MrShin, публичные функции с одинаковым именем в одном проекте не могут существовать... Меня интересует именно создание подобных функций, как указаны в стартовом топике. Про всё остальное я знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:47 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ПанургMrShin, публичные функции с одинаковым именем в одном проекте не могут существовать... Меня интересует именно создание подобных функций, как указаны в стартовом топике. Про всё остальное я знаю. Дык создавайте их в разных модулях. Или я чего-то не догоняю. С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:57 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ROIТогда может другой символ выбрать или нужен именно знак доллара? это не знак доллара, это сокращённые обозначения типа возвращаемого значения ( As String ). Существуют и другие - & - Long , #-Double, % -Integer и т.д. Меня интересует именно создание подобных функций, как указаны в стартовом топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 09:59 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ROIПанургMrShin, публичные функции с одинаковым именем в одном проекте не могут существовать... Меня интересует именно создание подобных функций, как указаны в стартовом топике. Про всё остальное я знаю. Дык создавайте их в разных модулях. Или я чего-то не догоняю. С уважением. Однако если функция будет публично то наверно не VBA не даст. У меня зуд по всему телу (а зачем это)? С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:00 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ROIДык создавайте их в разных модулях.Как я их буду создавать если Панург... публичные функции с одинаковым именем в одном проекте не могут существовать ... И всё же... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:01 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
ROIа зачем этоБудем считать - спортивный интерес. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:03 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Панургэто не знак доллара Создал: Public Function Chrr$() End Function Объект браузер показывает именно знак доллара Chr$ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:05 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Панургпубличные функции с одинаковым именем в одном проекте не могут существовать Так я и говорю, что нельзя объявить функции с одинаковым именем в стандартном модуле, даже если они разные, а если одна публичная функция в стандартном модуле, а другая в модуле формы или класса, то пожалуйста, это уже метод будет, а не чисто функция. Меня тоже этот вопрос интересовал в свое время, ответ - нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:05 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Панург, в одном модуле создал функцию Код: vbnet 1. 2. 3. 4.
в другом модуле - функцию Код: vbnet 1. 2. 3. 4.
компилируется без проблем, в Immediate получаю Код: vbnet 1. 2. 3. 4. 5. 6.
может чего недопонял? не это интересовало? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:26 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
guest_rusimport, интересовало в одном конечно... В твоём варианте имена то всё равно разные - module1.ch и module2.ch Если в разных модулях объявить такие функции проект конечно скомпилируется (так у меня получилось), но при вызове ошибка времени исполнения --------------------------- Microsoft Visual Basic --------------------------- Compile error: Ambiguous name detected: ttt --------------------------- ОК Справка --------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:38 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
guest_rusimport, всё это не принципиально и не горит. Просто стало интересно - возможно ли повторить... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:40 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
MrShinНет полиморфизма, хоть ты тресниСъем свою шляпу, если InStr(), например, не полиморфная функция. Вы понимаете этот термин в очень узком смысле. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 10:49 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
13-й квартал, а ты по вопросу скажешь чего? Возможно ли реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 11:02 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Панург, думаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 11:46 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
13-й кварталСъем свою шляпу, если InStr(), например, не полиморфная функция Конечно полиморфная. Имелось в виду классическое определение, когда для разных типов переменных выполняется разный код. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 11:57 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
13-й кварталПанург, думаю. Думай быстрей (нам интересно же). Без сарказма. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 12:05 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Надумались пока что две мысли: 1) Если брать только VBA, надумал как сделать с квадратными скобками, например [MyFunc]() и [MyFunc$](), или MyFunc() и [MyFunc$](), но не MyFunc() и MyFunc$(). Пример прилагаю (см. процедуру Test). Там есть трюки с атрибутами, поэтому истинные тексты классов прилагаю отдельно (Predeclared будет доволен). 2) В библиотеке типов видно, что имена таких функций декорируются особым образом (ну, и имеют соответствующий тип результата): Код: plaintext 1. 2. 3. 4. 5.
Хм, я ожидал чего-нибудь более мощного, вроде специального атрибута IDL. Надо написать свою DLL и библиотеку типов, посмотреть, что выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2016, 20:18 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
13-й квартал, пока это получается развитие мысли guest_rusimport 19690511 - 2 модуля (класса)=2 функции/процедуры. Плюс добавилась имитация обозначения строкового варианта с $. К сожалению, пока это малоприменимо... Или я не понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 08:21 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
Панург13-й квартал, пока это получается развитие мысли guest_rusimport 19690511 - 2 модуля (класса)=2 функции/процедуры. Плюс добавилась имитация обозначения строкового варианта с $. К сожалению, пока это малоприменимо... Или я не понял?Да, два модуля (класса), но можно не специфицировать составной идентификатор (с точкой). Вопрос из чистого любопытства (не в защиту варианта) - малоприменимо почему? Возвращаясь к вопросу "как это было сделано", моё предположене подтвердилось: VBA смотрит на префикс имени функции в библиотеке типов. Но совсем "как надо" сделать не получилось - хоть Object Browser и утверждает, что функции попали в Global Namespace, идентификатор приходится-таки писать составной, иначе - "Variable not defined". Дожать, наверное, можно, но это будет комбинация C/C++ и IDL (что, насколько я понимаю, тоже "не по ТЗ"). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 03:28 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
13-й кварталВопрос из чистого любопытства (не в защиту варианта) - малоприменимо почему?Вообще-то блажь конечно. но хотелось сделать свойства у класса возвращающие/принимающие одно и то же (визуально), но разных типов - True/False-"Yes"/"No", 1.2/2.0 - "1.2"/"2.0" и т.д. и подчеркнуть это соответствующим квалификатором (ну так хотелось, а вдруг!). Класс занимается парсингом/формированием особым образом структурированных текстовых файлов. Была надежда на недокументированные способы. Ну и в познавательном аспекте... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 04:07 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
возвращаясь к началу топика Панург...есть функции с одинаковыми названиями (почти), но возвращающие/принимающие разные типы значений... а если использовать неявное преобразование типов? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 18:06 |
|
две функции одно название?
|
|||
---|---|---|---|
#18+
guest_rusimportвозвращаясь к началу топика Панург...есть функции с одинаковыми названиями (почти), но возвращающие/принимающие разные типы значений... а если использовать неявное преобразование типов?...В функциях такое прокатит вне сомнения, но в последнем посте я написал, что это надо для свойств ( Property ). А вот тут затык... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2016, 06:43 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1613125]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 168ms |
0 / 0 |