.NET - Выбор SQL-> Массив. Каков самый быстрый путь?

Можно легко наследоваться тому классу:

class Derived: public TimerEvent {
    ...
};

Однако Вы не можете переопределить HandleTimer в своем подклассе и ожидать, что это будет работать:

TimerEvent *e = new Derived();
e->HandleTimer();

Это вызвано тем, что статические методы не имеют записи в vtable, и не могут таким образом быть виртуальными. Можно однако использовать "пустой* Аргумент" для передачи указателя на экземпляр... что-то как:

struct TimerEvent {
    virtual void handle(int fd, short event) = 0;

    static void HandleTimer(int fd, short event, void *arg) {
        ((TimerEvent *) arg)->handle(fd, event);
    }
};

class Derived: public TimerEvent {
    virtual void handle(int fd, short event) {
        // whatever
    }
};

Таким образом, HandleTimer может все еще использоваться от функций C, просто удостоверьтесь, что всегда передали "реальный" объект как "пустой* Аргумент"

5
задан Brian Webster 22 October 2009 в 07:20
поделиться

2 ответа

Не просматривать таблицу данных. Используйте SqlReader для чтения каждой строки по очереди, создания объекта и заполнения его. SqlCommand.ExecuteReader должен помочь вам начать работу.

4
ответ дан 14 December 2019 в 08:54
поделиться

Используйте DataReader вместо DataTable -> Array. Используя средство чтения данных, вы можете записывать значения непосредственно в массив. Я не думаю, что так будет быстрее.

3
ответ дан 14 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: