using System;
using System.Timers;namespace Ch12Ex01
{
   class Class1
   {
      static int counter = 0;       static string displayString =
         "This string will appear one letter at a time. ";      static void Main(string[] args)
      {
         Timer myTimer = new Timer(1000);
         myTimer.Elapsed += new ElapsedEventHandler(WriteChar);
         myTimer.Start();
         Console.ReadLine();
      }      static void WriteChar(object source, ElapsedEventArgs e)
      {
         Console.Write(displayString[counter++ % displayString.Length]);
      }
   }
}
================
就这句用法不太明白
Console.Write(displayString[counter++ % displayString.Length]);
c#里[]表示字符串的第几个字符,一般我只会[数字],counter++表示从0开始+是吧,直到+到length长度,再从头+这中表示方法格式是什么?%是什么意思?

解决方案 »

  1.   

    Console.Write(displayString[counter++ % displayString.Length]);等效于
    --------------------------------------------------------------------
    Console.Write(displayString[counter % displayString.Length]);
    counter = counter + counter;% 是取余数运算符。
      

  2.   

    错啦,是
    counter = counter + 1;
      

  3.   

    count++ 用完 count += 1
    ++count count+=1 再用
      

  4.   

    displayString[counter++ % displayString.Length];
    displayString[0];displayString[1];……displayString[n];displayString[0];displayString[1];……displayString[n];……
      

  5.   

    counter++ % displayString.Length
    等价于:
    int i = counter % displayString.Length;
    counter = counter + 1;
    return i;
      

  6.   

    楼主刚学时多查查msdn,基本问题都能解决
      

  7.   

    % 是算术求余数运算符
    ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfRemainderOperator.htm
      

  8.   

    counter++表示从0开始+是吧,直到+到length长度,再从头+------------------------------------------------------>
    不一定从0开始,看你的counter初始值了。%是什么意思?
    模除。也就是取余数运算,比如27%5 = 2 ;
      

  9.   

    counter = counter + 1;% 是取余数运算符。一秒显示一个字符不断循环就好像你在公交车上看到的电子牌!!!!!!
      

  10.   

    好谢了,我是楼住,这个问题明白了
    还有,为什么displayString是用static声明的,为什么要用静态的,如果把static去掉,就会出错为什么,在c#里声明变量,比如int a,那a默认范围是什么 ?
    谢拉~还有这个示例里面签名和委托都是哪些?签名,委托是怎么回事?
      

  11.   

    myTimer.Elapsed += new ElapsedEventHandler(WriteChar);其中ElapsedEventHandler就是委托!方法签名就是委托定义的参数类型,而所有加入这个委托的方法都必须保证参数和方法签名一致!!!就好像实际你用到的方法
    static void WriteChar(object source, ElapsedEventArgs e)它的参数格式(object source, ElapsedEventArgs e)就是ElapsedEventHandler 的方法签名;