函数检查空字符串/属性?

Gis*_*e W 1 c# visual-studio-2008

我有一个属性(字符串)的对象.例如:患者体重,体重,身高.

但是当属性为null时,我尝试使用它时代码失败,因为属性设置为null.所以我要做的是创建函数来检查字符串/属性是否为null,如果是,则将该属性设置为"".

我知道我可以做其中一个:if(string.isNullOrEmpty(patient.weight))patient.weight ="";

但我需要代码尽可能干净,而且我有很多属性,所以我不想手动检查每一个.理想情况下,我希望有一个可以接受字符串的函数(即使它为null也不会失败),只返回值(如果它不为null),或者返回"",如果它为null.

任何人都可以给我一个线索:(?

ang*_*son 5

就个人而言,我会通过这样写它们来确保这些属性永远不会为null:

private string _Name = string.Empty;
public string Name
{
    get
    {
        return _Name;
    }
    set
    {
        _Name = value ?? string.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,你正在寻找的可能是??运算符,也就是上面使用的null-coalescing运算符,基本上,这个表达式:

x = y ?? z;
Run Code Online (Sandbox Code Playgroud)

意思是这样的:

if (y != null)
    x = y;
else
    x = z;
Run Code Online (Sandbox Code Playgroud)

这也不完全正确.在上面的例子y中评估两次,这不会发生在??操作符上,所以更好的近似是这样的:

var temp = y;
if (temp != null)
    x = temp;
else
    x = z;
Run Code Online (Sandbox Code Playgroud)

  • 不,Stack Overflow消失了几秒钟,也发生在我身上. (2认同)