Я хочу создать класс таблицы данных с указанными столбцами, которые я могу использовать для вызова методов, например копирования или агрегации, где я могу перебирать некоторые записи и добавлять их в таблицу.Создать повторно используемый объект данных; Только Add On Iterations
Я думал, что я мог бы создать частные и государственные наборы переменных и присвоить значение таблицы моим по умолчанию, как:
private DataTable newTable;
public DataTable NewTable
{
get { return newTable; }
set
{
DataTable newTable= new DT();
newTable.Columns.Add("Name", typeof(string));
newTable.Columns.Add("Id", typeof(int));
}
}
Моя мысль была о том, что человек может получить эту таблицу, но не мог» t установите его, потому что он установлен на значение по умолчанию. Тем не менее, я вижу сообщение от интерфейса, что это всегда будет null, даже если я позже использую его в методе.
Другой удар я взял создавал статический класс, который я мог бы использовать в способе, вовлекая выше с таблицей данных создаются:
static DataTable myDt()
{
DataTable myDt = new DT();
myDt.Columns.Add("Name", typeof(string));
myDt.Columns.Add("Id", typeof(int));
}
Эта функция не работает так, как мне нужно на каждой итерации когда кто-то итерирует более 100 тыс. записей, я не хочу, чтобы каждый раз создавалась таблица данных; Я хочу, чтобы таблица данных создавалась один раз с определением, строка данных, созданная один раз, затем на каждой итерации данные добавляются в новую строку на основе имен столбцов из определения. Я думал, что класс будет иметь определение таблицы данных, которое никогда не изменится, и строку данных, которая может быть изменена на каждой итерации и добавлена в таблицу.
Основываясь на том, что я пытаюсь сделать, где я ошибаюсь, или это даже возможно?
Исходная проблема заключается в том, что сеттер не устанавливает закрытую переменную, он просто создает новую переменную и затем отбрасывает ее. Таким образом, 'newTable' класса класса всегда« null ». Но более значительная проблема с дизайном заключается в том, что сеттер фактически не устанавливает то, что ему дано, что будет очень вводить в заблуждение и вызовет всевозможные логические ошибки, которые сложно отлаживать с течением времени. – David
'DataTable newTable = new DT();' не тот же DataTable, что и 'private DataTable newTable;'. Вы скрываете DataTable на уровне класса с этой переменной в 'set'. –