代码之家  ›  专栏  ›  技术社区  ›  matthewk

为什么Visual C_2008 Express中缺少StringBuilder类的chars属性?

  •  1
  • matthewk  · 技术社区  · 16 年前

    这几乎就是全部问题。我在一台干净的Windows XP Pro SP3计算机上安装了Visual C 2008 Express,启动了一个新的Windows窗体项目,双击该窗体以创建一个Form1_加载方法,然后键入:

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

    但是字符不会出现在自动完成菜单上。为什么不呢?

    2 回复  |  直到 16 年前
        1
  •  4
  •   Jon Skeet    16 年前

    这是你提到的索引器 foo[bar] 语法而不是 foo.Chars(bar) :

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

    C不使用索引器的名称,也不能使用具有相同参数的多个索引器,这些参数的名称不同(用不同的语言创建)。

    大多数时候这是可以的,但只是偶尔我希望它完全支持命名索引器…

        2
  •  2
  •   Andy    16 年前

    因为你用的是C。

    在C中,接受参数的属性不能按名称引用,而在VB中,它们可以按名称使用。可以使用与集合的项属性相同的方式访问此属性:

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

    这将返回StringBuilder内部字符串中的第一个字符。

    推荐文章