Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种简写的方法可以在C#中去掉字符串?_C#_.net_String_Null - Fatal编程技术网

有没有一种简写的方法可以在C#中去掉字符串?

有没有一种简写的方法可以在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(); 有人对此有什么改

有没有一种简写的方法可以在C#中去掉字符串

它将等效于(如果“x”是字符串):

我想我希望有一个操作员能像这样工作:

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 ?? "";