2009-01-14 65 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的内部返回字符串中的第一个字符。