我有以下變量:如何加入字符串變量時有些可能爲null?
ac, pr, pa, co and it
所有這些都是字符串變量和一些可能爲空。
有沒有一種方法可以創建一個名爲pk的新變量,它是所有這些變量內容的組合。我想簡單地說:
var pk = ac + pr + pa + co + it;
但是這會是一個問題,如果一些varibably爲空。我不確定在向字符串添加空變量時會發生什麼。
我有以下變量:如何加入字符串變量時有些可能爲null?
ac, pr, pa, co and it
所有這些都是字符串變量和一些可能爲空。
有沒有一種方法可以創建一個名爲pk的新變量,它是所有這些變量內容的組合。我想簡單地說:
var pk = ac + pr + pa + co + it;
但是這會是一個問題,如果一些varibably爲空。我不確定在向字符串添加空變量時會發生什麼。
空字符串將連接成空字符串。試試看:
string a = null;
string b = null;
var x = a + b;
var y = string.Concat(a, b);
這是一個string.Concat
documented feature,以及使用字符串+
運算符,其中空參數將轉換爲空字符串C# 4 language specification第7.8.4。
使用Concat有沒有優勢?有沒有x和y可能不一樣的情況?對不起,如果這聽起來像一個愚蠢的問題,但我只是想確定。謝謝。 – 2011-12-30 05:46:51
表達式'var x = a + b;',其中'a'和'b'是字符串,編譯成'string.Concat'的調用。我展示了它的明確調用,但並不是絕對必要的。 – 2011-12-30 05:48:28
注意:順便說一句,我在前面的陳述中有些犯錯。 'a' *或*'b'必須是一個字符串。也就是說,'var x =「hello」+ 1;'也是一個字符串連接。另一個操作數將被視爲「對象」(其中包含一個值類型),並應用相同的規則。如果它是空引用,則替換空字符串。否則,該對象上的ToString()的結果將用於並置。 – 2011-12-30 06:04:28
如何使用String.Format();
String result=String.Format("{0}{1}{2}{3}{4}{5}",ac,pr,pa,co,and,it)
爲什麼這與問題中顯示的'+'運算符有什麼不同? – 2011-12-30 05:45:06
通過我對這個問題的理解,'和'不是一個變量名,它只是「和」這個詞。 – chaosTechnician 2011-12-30 05:46:19
@Cody Gray,我不知道哪一個是不同的或更好的,但是從C++背景切換後,我發現使用String.Format()可以很容易地做到這一點。 – crypted 2011-12-30 06:17:54
不會有任何問題。
如果一個變量爲null,它將簡單地轉換爲「」,所以一個空字符串。
如果你有以下幾點:
string a = "->";
string b = null;
string c = "<-";
而且你要他們加在一起,像這樣:
var result = a + b + c;
結果只會是
- > < -
如果向另一個添加(附加)空字符串,那很好。在這種情況下,空字符串將被轉換爲空字符串。
我必須問,你爲什麼不試試?簡單地將一些變量設置爲null,然後顯示結果爲System.Windows.Messagebox()。 – 2011-12-30 05:45:57
你試過了嗎?你的猜測在極簡測試程序中工作得很好。 – chaosTechnician 2011-12-30 05:50:13
-1拿起關於C#編程的好書,這將是更好的方式來與這個概念性的東西前進步調 – 2011-12-30 06:01:39