帮助我理解这个c#代码

本文关键字:代码 帮助 | 更新日期: 2023-09-27 18:05:42

C#3.0开始时的这段代码:面向对象编程简介

这是一个程序,让用户在多行文本框中输入几句话,然后计算每个字母在该文本中出现的次数

  private const int MAXLETTERS = 26;            // Symbolic constants
  private const int MAXCHARS = MAXLETTERS - 1;
  private const int LETTERA = 65;

private void btnCalc_Click(object sender, EventArgs e)
  {
    char oneLetter;
    int index;
    int i;
    int length;
    int[] count = new int[MAXLETTERS];
    string input;
    string buff;
    length = txtInput.Text.Length;
    if (length == 0)    // Anything to count??
    {
      MessageBox.Show("You need to enter some text.", "Missing Input");
      txtInput.Focus();
      return;
    }
    input = txtInput.Text;
    input = input.ToUpper();

    for (i = 0; i < input.Length; i++)    // Examine all letters.
    {
      oneLetter = input[i];               // Get a character
      index = oneLetter - LETTERA;        // Make into an index
      if (index < 0 || index > MAXCHARS)  // A letter??
        continue;                         // Nope.
      count[index]++;                     // Yep.
    }
    for (i = 0; i < MAXLETTERS; i++)
    {
      buff = string.Format("{0, 4} {1,20}[{2}]", (char)(i + LETTERA)," ",count[i]);
      lstOutput.Items.Add(buff);
    }
  }

我不理解这条线

 count[index]++;

和这行代码

buff = string.Format("{0, 4} {1,20}[{2}]", (char)(i + LETTERA)," ",count[i]);

帮助我理解这个c#代码

count[index]++;的意思是"在索引indexcount中的值上加1"。++具体称为递增。代码所做的是计算一个字母的出现次数。

buff = string.Format("{0, 4} {1,20}[{2}]", (char)(i + LETTERA)," ",count[i]);正在格式化一行输出。带字符串。格式,您首先传入一个格式说明符,它的工作原理类似于模板或表单字母。{}之间的部分指定了传递到string.Format的附加参数的使用方式。让我分解一下格式规范:

{0,4}第一个(索引0(参数(在本例中为字母(。4部分表示输出时应占据4列的文本。{1,20}第二个(索引1(参数(在本例中为空格(。20用于强制输出为20个空格,而不是1个空格。{2} 第三个(索引2(参数(在本例中为计数(。

因此,当string.Format运行时,(char)(i + LETTERA)被用作第一个参数,并插入到格式的{0}部分。" "插入{1}count[i]插入{2}

count[index]++;

这是一个后增量。如果你要保存它的返回,它将在增量之前计数[index],但它基本上所做的就是增加值并返回增量之前的值。至于方括号内有一个变量的原因,它引用了数组索引中的一个值。换句话说,如果你想谈论街上的第五辆车,你可以考虑类似StreetCars(5(的东西。好吧,在C#中,我们使用方括号和零索引,所以我们会有类似StreetCars[4]的东西。如果你有一个名为StreetCars的Car数组,你可以通过使用索引值来引用第五辆车。

至于字符串。Format((方法,请参阅本文。