C# 当某些字符串变量可能为空时,如何连接字符串变量?

C# 当某些字符串变量可能为空时,如何连接字符串变量?,c#,C#,我有以下变量: ac, pr, pa, co and it 所有这些都是字符串变量,有些可能为空 有没有一种方法可以创建一个名为pk的新变量,它是所有这些变量内容的组合。我只是想: var pk = ac + pr + pa + co + it; 然而,如果某个变量为空,这将是一个问题。我不确定在向字符串添加空变量时会发生什么。空字符串将连接成空字符串。试试看: string a = null; string b = null; var x = a + b; var y = strin

我有以下变量:

ac, pr, pa, co and it 
所有这些都是字符串变量,有些可能为空

有没有一种方法可以创建一个名为pk的新变量,它是所有这些变量内容的组合。我只是想:

var pk = ac + pr + pa + co + it; 

然而,如果某个变量为空,这将是一个问题。我不确定在向字符串添加空变量时会发生什么。

空字符串将连接成空字符串。试试看:

string a = null;
string b = null;

var x = a + b;
var y = string.Concat(a, b);

这是使用字符串的
string.Concat以及
+
运算符的第7.8.4节的一个示例,其中空参数转换为空字符串

使用
String.Format()怎么样


不会有问题的

如果变量为null,它将被简单地转换为“”,因此为空字符串

如果您有以下情况:

string a = "->";
string b = null;
string c = "<-";
结果只会是


-> 如果在另一个字符串中添加(附加)空字符串,则可以。在这种情况下,空字符串将被转换为空字符串。

为什么这与问题中显示的
+
运算符不同或更好?根据我对问题的理解,
不是变量名,只是单词“and”。@Cody Gray,我不知道哪一个不同或更好,但是从C++背景切换到我总是很容易用String .FrUATE()来做。我必须问,为什么你不尝试一下呢?只需将一些变量设置为null,然后显示一个System.Windows.Messagebox()及其结果。您尝试过吗?你的猜测在一个极简测试程序中效果很好。-1拿起一本关于C#编程的好书,这将是更好的方法来跟上这个概念性的东西。支持投票,因为反对票非常苛刻,这确实是一个糟糕的问题,但不是一个超级、超级糟糕的问题。使用Concat有优势吗?是否存在x和y可能不相同的情况?抱歉,如果这听起来像个愚蠢的问题,但我只是想确定一下。谢谢。表达式
var x=a+b,其中
a
b
是字符串,编译为对
string.Concat的调用。我展示了它的显式调用,但这并不是严格必要的<代码>a
b
必须是字符串。也就是说,
var x=“hello”+1
也可以是字符串连接。另一个操作数将被视为
对象
(框中包含值类型),并应用相同的规则。如果是空引用,则替换空字符串。否则,对象上的
ToString()
结果将用于连接。
string a = "->";
string b = null;
string c = "<-";
var result = a + b + c;