Как написать функцию, которая должна инкапсулировать отдельный код?C#

Место общения программистов C#
Ответить
Anonymous
 Как написать функцию, которая должна инкапсулировать отдельный код?

Сообщение Anonymous »

Я хочу написать класс, который будет обрабатывать подключение к моей базе данных.
Я пытаюсь найти решение своей проблемы.
У меня есть функции, которые объявляют строку cmdSQLite и открывают соединения. Особенно для некоторых случаев использования, когда мне приходится манипулировать данными во время их чтения (например, при использовании полей со списком, заполнении древовидных представлений или необходимости конвертировать только часть данных).
Я хотел бы использовать функцию чтения следующим образом: она должна проверить DbType, затем открыть устройство чтения + прочитать данные из устройства чтения. В конце соединение должно быть закрыто.
Закомментированная часть посередине (отмеченная /* */) должна быть кодом, который каждый раз разный, поскольку этот код зависит, например, от по строке SQL, введенной ранее.

Код: Выделить всё

public object getData()
{
switch(DbConn.DbType)
{
case 1:
using (SQLiteDataReader reader = cmdSQLite.ExecuteReader())
{
while (reader.Read())
{
/*  //Inject custom code and RETURN DATA How?
cb_AG.Items.Add(reader.GetValue(2).ToString());

if (dtProj.Rows[0][3].ToString() == reader.GetValue(0).ToString())
{
cb_AG.SelectedIndex = i;
}

i++;  */
}
}

connSQLite.Close();
return object; //Object has to be declared in given Textblock

case 2: //same, with MySQL
[...]

default:
return null;
}
}
Будет ли Object object = new Function(); решением? Но как передать функцию извне? Есть ли какие-либо подводные камни, которые могут быть опасны при использовании этого решения?
Или есть что-то получше? Я также думал об интерфейсах и делегатах, но не уверен, что они действительно впишутся в мой класс.
Я застрял там, так как не знаю, какие ' базовую модель, которую мне следует использовать, которая также не ухудшит ремонтопригодность кода.

Подробнее здесь: https://stackoverflow.com/questions/783 ... idual-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»