2011-12-30 13 views
-2

我有以下變量:如何加入字符串變量時有些可能爲null?

ac, pr, pa, co and it 

所有這些都是字符串變量和一些可能爲空。

有沒有一種方法可以創建一個名爲pk的新變量,它是所有這些變量內容的組合。我想簡單地說:

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

但是這會是一個問題,如果一些varibably爲空。我不確定在向字符串添加空變量時會發生什麼。

+2

我必須問,你爲什麼不試試?簡單地將一些變量設置爲null,然後顯示結果爲System.Windows.Messagebox()。 – 2011-12-30 05:45:57

+1

你試過了嗎?你的猜測在極簡測試程序中工作得很好。 – chaosTechnician 2011-12-30 05:50:13

+0

-1拿起關於C#編程的好書,這將是更好的方式來與這個概念性的東西前進步調 – 2011-12-30 06:01:39

回答

6

空字符串將連接成空字符串。試試看:

string a = null; 
string b = null; 

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

這是一個string.Concatdocumented feature,以及使用字符串+運算符,其中空參數將轉換爲空字符串C# 4 language specification第7.8.4。

+0

使用Concat有沒有優勢?有沒有x和y可能不一樣的情況?對不起,如果這聽起來像一個愚蠢的問題,但我只是想確定。謝謝。 – 2011-12-30 05:46:51

+1

表達式'var x = a + b;',其中'a'和'b'是字符串,編譯成'string.Concat'的調用。我展示了它的明確調用,但並不是絕對必要的。 – 2011-12-30 05:48:28

+0

注意:順便說一句,我在前面的陳述中有些犯錯。 'a' *或*'b'必須是一個字符串。也就是說,'var x =「hello」+ 1;'也是一個字符串連接。另一個操作數將被視爲「對象」(其中包含一個值類型),並應用相同的規則。如果它是空引用,則替換空字符串。否則,該對象上的ToString()的結果將用於並置。 – 2011-12-30 06:04:28

1

如何使用String.Format();

String result=String.Format("{0}{1}{2}{3}{4}{5}",ac,pr,pa,co,and,it) 
+0

爲什麼這與問題中顯示的'+'運算符有什麼不同? – 2011-12-30 05:45:06

+0

通過我對這個問題的理解,'和'不是一個變量名,它只是「和」這個詞。 – chaosTechnician 2011-12-30 05:46:19

+0

@Cody Gray,我不知道哪一個是不同的或更好的,但是從C++背景切換後,我發現使用String.Format()可以很容易地做到這一點。 – crypted 2011-12-30 06:17:54

1

不會有任何問題。

如果一個變量爲null,它將簡單地轉換爲「」,所以一個空字符串。

如果你有以下幾點:

string a = "->"; 
string b = null; 
string c = "<-"; 

而且你要他們加在一起,像這樣:

var result = a + b + c; 

結果只會是

- > < -

1

如果向另一個添加(附加)空字符串,那很好。在這種情況下,空字符串將被轉換爲空字符串。

相關問題