有没有一种简写的方法可以在C#中去掉字符串?
有没有一种简写的方法可以在C#中去掉字符串 它将等效于(如果“x”是字符串): 我想我希望有一个操作员能像这样工作:有没有一种简写的方法可以在C#中去掉字符串?,c#,.net,string,null,C#,.net,String,Null,有没有一种简写的方法可以在C#中去掉字符串 它将等效于(如果“x”是字符串): 我想我希望有一个操作员能像这样工作: string y = #x; 一厢情愿,嗯 到目前为止,我得到的最接近的方法是string类的扩展方法: public static string ToNotNull(this string value) { return value == null ? "" : value; } 这让我可以做: string y = x.ToNotNull(); 有人对此有什么改
string y = #x;
一厢情愿,嗯
到目前为止,我得到的最接近的方法是string类的扩展方法:
public static string ToNotNull(this string value)
{
return value == null ? "" : value;
}
这让我可以做:
string y = x.ToNotNull();
有人对此有什么改进吗?这将起作用:
string y = x ?? "";
参见
< P>如果你需要这个,而不是一个扩展方法,你可能需要考虑创建一个自己的类型,它的行为类似于一个空的,并且与一个系统共享相同的用法。方法。不幸的是,您只能在值类型上使用System.Nullable,因此无法将Nullable字符串作为标准字符串。我避免使用null字符串以避免此问题。如果其他人正在创建空字符串,则可能需要使用暴力。YMMV.上一个示例工作的事实非常可怕,因为您在对象上调用一个方法来检查该对象是否为=null。我知道这是由于扩展方法是静态的,但当看到它时感觉有点不对劲。空字符串是邪恶的,用String.Empty实例化并避免上面的逻辑。将空字符串归咎于开箱即用的LINQ to SQL数据类。如果列可以为空,我就会得到这个结果。我只是想把它们变成一致的东西。我很喜欢我的ToNotNull()。我想我可能会将其更改为ToDbNice(),同时对chars/nchars进行修剪string y = x ?? "";