我有一个像这样的对象模型:
public class MyObject
{
public string String1 { get; set; }
public string String2 { get; set; }
...
}
当对象初始化时,所有字符串值都设置为null。
稍后,我正在编写一个方法来评估这些字符串的值,以便在DB中准备更新。像这样:
if (TheObject.String1 != null) { TheObjectInDB.String1 = TheObject.String1; }
if (TheObject.String2 != null) { TheObjectInDB.String2 = TheObject.String1; }
TheObject是MyObject的一个实例,而TheObjectInDB是我正在更新的表的linq-to-sql映射的实例。
我的问题是:使用null是一种安全的方法来执行此操作还是以后会导致问题?我应该创建一个将这些字符串初始化为“”的构造函数,并在更新中检查字符串是否为“”而不是= null?
感谢您的建议。
答案 0 :(得分:1)
您可以将两个属性初始化为string.Empty(首选为“”),然后在设置属性时检查string.Empty,但前提是您可以保证: -
a)设置的值绝不是string.Empty
或
b)设置的值是string.Empty,但值只设置一次
我坚持检查null以避免上述任何一种情况导致将来出现潜在问题。
答案 1 :(得分:1)
null或空字符串没有更多或更不安全。这完全是您的选择。因为两者通常用于表示数据或信息的绝对性,所以有一种方便的方法string.IsNullOrEmpty允许您接受任一值。
在你的情况下,我会坚持使用最简单的选项,null。
答案 2 :(得分:1)
这里没有问题,您使用的代码应该没有任何问题。 我甚至无法想到'这可能导致'以后'的问题。