инициализация объекта со строками в null - PullRequest
0 голосов
/ 07 января 2012

У меня есть объектная модель, примерно такая:

public class MyObject

    {
      public string String1 { get; set; }
      public string String2 { get; set; }
      ...
    }

Когда объект инициализируется, все строковые значения устанавливаются в ноль.

Позже я пишу метод, который оценивает значение этих строк, чтобы подготовить обновление в БД. Как то так:

if (TheObject.String1 != null) { TheObjectInDB.String1 = TheObject.String1; }
if (TheObject.String2 != null) { TheObjectInDB.String2 = TheObject.String1; }

TheObject является экземпляром MyObject, а TheObjectInDB является экземпляром карты linq-to-sql для обновляемой таблицы.

У меня такой вопрос: является ли использование null безопасным способом сделать это или это может вызвать проблемы позже? Должен ли я создать конструктор, который инициализирует эти строки как "", и в обновлении проверьте, являются ли строки = "" вместо = null?

Спасибо за совет.

Ответы [ 3 ]

1 голос
/ 07 января 2012

Нет ничего более или менее безопасного в нулевой или пустой строке. Это полностью ваш выбор. Поскольку оба часто используются для указания отсутствия данных или информации, существует удобный метод string.IsNullOrEmpty , который позволяет принять любое значение.

В вашем случае я бы выбрал самый простой вариант, ноль.

1 голос
/ 07 января 2012

Здесь нет проблем, код, который вы используете, должен работать без проблем. Я даже не могу думать о «проблемах, которые это может вызвать позже».

1 голос
/ 07 января 2012

Вы можете инициализировать оба свойства в string.Empty (предпочтительно ""), а затем проверять наличие string.Empty при установке свойств, однако, только если вы можете гарантировать, что либо: -

a) устанавливаемое значение никогда не является строкой. Пустой

или

b) устанавливается значение string.Empty, но значения устанавливаются только один раз

Я бы остановился на проверке на ноль, чтобы избежать любого из вышеперечисленных, что может вызвать проблемы в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...