2009-01-14 26 views
1

這幾乎是整個問題。我已經安裝了Visual C#2008 Express的一個乾淨的Windows XP專業版SP3的機器上,開始了新的Windows窗體項目,雙擊窗體創建一個Form1_Load方法,然後鍵入:爲什麼在Visual C#2008 Express中缺少StringBuilder類的Chars屬性?

StringBuilder SB; 
SB = new StringBuilder("test"); 
SB.Chars 

但字符數不出現在自動完成菜單中。爲什麼不?

+0

問題會更清楚,如果它說與VB.net相比,「失蹤」,這是喬恩推斷。我把你的問題看作是「與其他Visual Studio C#版本相比缺少的」。 – 2009-01-14 19:38:02

回答

4

它的索引,你有foo[bar]語法而不是foo.Chars(bar)參考:

StringBuilder sb = new StringBuilder("Hello"); 
char c = sb[1]; // c='e' 

C#不使用索引的名字,也不能使用與這些不同的名稱相同的參數多個索引(用不同的語言創建)。

這其中大部分是好的時候,只是偶爾我希望它完全支持命名索引...

2

這是因爲你使用C#。

在C#中,帶參數的屬性不能通過名稱引用,而在VB中,它們可以按名稱使用。您可以以同樣的方式訪問該屬性爲商品屬性可集合:

StringBuilder sb = new StringBuilder(); 
char ch = sb[0]; 

這將StringBuilder的內部返回字符串中的第一個字符。