Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
26 / 26 / 6
Регистрация: 19.10.2012
Сообщений: 131

Vala, вернуть List из функции

26.10.2014, 13:09. Показов 1182. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, возникла проблема. Есть функция, обращающаяся к sqlite базе, которая должна заполнить список пользователями. Однако, при завершении работы функции список, который передается другой функцией - пуст. Вот используемый код. Почему так происходит - мне не понятно, так как должна ведь передаваться ссылка на list, а не его копия.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void get_users (List<UsersModels.User> list) {
    string query = "SELECT * FROM Users";
    string msg;
 
    this.status = this.app_db.exec (query, (n_columns, values, column_names) => {
        UsersModels.User us = new UsersModels.User.empty ();
 
        for (int i = 0; i < n_columns; i++) {
            us.set_by_name (column_names[i], values[i]);
        }
        list.append (us);
        return 0;
    }, out msg);
 
}
 
public void restore_state (Ui.UserList ul) {
    List<UsersModels.User> list = new List<UsersModels.User> ();
    get_users (list);
}
Добавлено через 8 часов 15 минут
Проблему решил однако. Я работать с памятьью не умею, но кажется мне, что по окончании вызова get_users все созданные объекты, которые былы в списке магическим образом наверное затирались. Перенес функцию создания объектов в scope UserList, обернув анонимной функцией и все заработало. Однако правильно ли так делать - понятия не имею. В результате получилось следующее.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void get_users (Ui.UserList ul) {
    string query = "SELECT * FROM Users";
    string msg;
 
    this.status = this.app_db.exec (query, (n_columns, values, column_names) => {
        ul.add_user (n_columns, values, column_names);
        return 0;
    }, out msg);
 
}
 
public void restore_state (Ui.UserList ul) {
    get_users (Ui.UserList ul);
}
Добавлено через 2 часа 59 минут
Вообще-то тему не следовало перемещать. Я спрашивал непосредственно о работе GLib.List, сомневаюсь, что специфика списков в C# и GLib С одинакова. Просто здесь нат разметки Vala, чей синтаксис весьма схож с C#. Не вставлять же текст чистым текстом.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2014, 13:09
Ответы с готовыми решениями:

[Vala] Язык Vala и Vk API
Доброго времени суток, уважаемые формучане! Т.к. я на форуме не нашел раздела, посвященного языку Vala, пишу тут.. Собственно вопрос в...

Вернуть список списков (List<List<>>)
Всем доброго дня! Ситуация следующая, из файла построчно читаются значения, одна строка один список, в каждой строке одинаковое...

Как вернуть List<string>?
всем привет, вопрос: как сделать return елементов List, если есть такой метод public String assem(List&lt;string&gt; element) ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2014, 13:09
Помогаю со студенческими работами здесь

Вернуть данные типа List<string>
Добрый день, вопрос в следующем. Есть программа, которая считывает данные из файла, обрабатывает их и создаёт объект типа...

Вернуть номер позиции в List по известному значению
Добрый день! Есть четыре List&lt;string&gt;. Допустим Main, One, Two, Three. Во всех списки url. Адреса во всех списках в разном порядке....

Вернуть List, в котором нужно только 2 поля: ID, Name - какой тип возвращаемого значения указать
Хотел узнать мнение по поводу модели данных. Чтобы отделить данные от самого приложения нужно создавать отдельный класс и лишь возвращать...

Динамическое выделение памяти внутри функции (что вернуть из функции, если не удалось выделить память?)
такое дело, есть функция, которая выполняет некоторую операцию, функция при успешном выполнении должна вернуть 0, при ниудачном код...

Вернуть из функции объект класса-родителя функции
Приветствую всех. Вопрос изложу в коде. class TSomeClass { int data; public: // Правильно ли создана функция? TSomeClass...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru