字符串三元运算符语法糖

时间:2014-03-07 10:10:00

标签: c# syntax operator-keyword

我在我的代码中执行此操作:

destImp.Cap = (addr.location.postcode != "?") ? addr.location.postcode : null;
destImp.Civico = (addr.location.street != "?") ? addr.location.street : null;
destImp.Localita = (addr.location.city != "?") ? addr.location.city : null;
destImp.Indirizzo = (addr.location.street != "?") ? addr.location.street : null;

但它既麻烦又多余。有一种方法可以达到相同的结果,但语法更好?

1 个答案:

答案 0 :(得分:9)

您可以创建一个扩展方法:

public static string NullIf(this string str, string nullMarker)
{
   return str == nullMarker ? null : str;
}

然后你可以这样做:

destImp.Cap = addr.location.postcode.NullIf("?");
...