01.08.2005, 15:57 | #1 |
Участник
|
передача массива
подскажите, пожалуйста, как передать заполненный массив из класса в метод датасурса формы? Заранее спасибо.
|
|
01.08.2005, 16:23 | #2 |
Moderator
|
Форма вызывается из этого класса? Тогда передать в форму ссылку на экземпляр класса, а в классе реализовать метод, возвращающий этот заполненный массив.
В общем, одно из практических следствий ООП - мы не передаем кучу параметров, мы передаем сущность(объект), у которой впоследствии можем спросить все что нам надо. |
|
01.08.2005, 17:02 | #3 |
Участник
|
нет, форма вызывается не из класса, а просто открывается. Наоборот, при открытии формы вызывается метод класса, который заполняет массив, а потом при проведении действий на форме срабатывает метод, в который и надо передать этот массив
|
|
01.08.2005, 17:05 | #4 |
Участник
|
ну так тоже самое.. есть экземпляр класса... в нем написать метод, который возврящает объект типа массив...
|
|
01.08.2005, 17:14 | #5 |
Участник
|
какого типа должен быть метод ( в смысле -тип возвращаемого результата)
|
|
01.08.2005, 17:15 | #6 |
Участник
|
вернее, как правильно написать -int[ ] method или как?
|
|
01.08.2005, 17:23 | #7 |
Участник
|
тип возвращаемого объекта, должем быть таким же как и тип принимаемого))
может повторюсь, но "В общем, одно из практических следствий ООП " и нетолько |
|
01.08.2005, 17:29 | #8 |
Участник
|
принимаем мы массив. Например int ItemId[ ]. Тип возвращаемого значения соотвтественно -массив. Если написать int[ ] method , то выдает ошибку, как правильно написать в методе тип возвращаемого результата? Может быть, расширенный какой-нибудь тип создать?
|
|
01.08.2005, 17:30 | #9 |
Участник
|
Ну напиши например как внаписано в классе winapi
PHP код:
|
|
01.08.2005, 17:36 | #10 |
Участник
|
Если посмотреть в грамматику X++, то видно, то
метод/функция не может возвращать массив. Впрочем, принимать массив как параметр тоже не может. Но если тип является массивом, то можно. Лучше посмотрите на класс array или на контейнер. |
|
01.08.2005, 17:38 | #11 |
Участник
|
Цитата:
Изначально опубликовано sev
Например int ItemId[ ]. В Аксапте ввели примитивный тип контейнер и переопределили (overload) квадратные скобки. В Аксапте конструкция [x,y,z] означает не массив, а контейнер. Что здорово сбивает с толку поначалу. |
|
01.08.2005, 17:47 | #12 |
Участник
|
вот! Я об этом же. Спасибо, что поняли меня ).
|
|
01.08.2005, 18:01 | #13 |
Участник
|
только все равно не понятно до конца, как это всё оформить...(
|
|
01.08.2005, 18:06 | #14 |
Модератор
|
Что именно надо передать?
Используй класс Array. Если таблица - юзай RecordSortedList. С Уважением, Георгий. |
|
01.08.2005, 18:12 | #15 |
Участник
|
ну или так
container getContainer () { container c; //можно заполнить в другом месте)) c=[Id1,Id2...Idn]; return c; } |
|
01.08.2005, 18:14 | #16 |
Участник
|
Но в случае с container нада обрать на строгость порядка элементов в контенере для корректного примема данных из него..
|
|
01.08.2005, 18:33 | #17 |
Участник
|
при этом Id1, Id2, ID3 - могут быть int ? Ругается на несовместимость типов
|
|
01.08.2005, 19:17 | #18 |
Участник
|
Цитата:
Изначально опубликовано sev
при этом Id1, Id2, ID3 - могут быть int ? Ругается на несовместимость типов что вы именно пишете? |
|
01.08.2005, 19:33 | #19 |
Участник
|
Цитата:
Изначально опубликовано sev
при этом Id1, Id2, ID3 - могут быть int ? Ругается на несовместимость типов например, с = [3.25, Руб, КТ000017]. главное, когда вы принимаете из контейнера данные... чтобы переменные совпадали с типом данных соответствующих значений real price = 3.25, CurrencyCode сurrencyCode = "руб" Voucher voucher = "КТ000017" |
|
02.08.2005, 10:07 | #20 |
Moderator
|
К сведению, может map поможет.
Думаю, что можно рассматривать решение с map как вариант
PHP код:
|
|