代码如下:
DateTime dt = new DateTime(2007, 3, 3);
for (int i = 0; i < 3; i++)
{
            Console.WriteLine(dt.ToString());
            dt.AddMonths(1);
}
结果如下:
2007-3-3 0:00:00
2007-3-3 0:00:00
2007-3-3 0:00:00
为何结果会这样呢?难道dt.AddMonths(1);没有起作用吗?
还有一个代码如下:
int[][] arr = new int[2][] { new int[] { 1, 2 }, new int[] { 3, 4, 5, 6, 7 } };
Console.WriteLine(arr[0][2].ToString());
结果是越界。
为何会这样呢?我觉得通过定义知道这个数组其实是一个2行5列的数组。没有赋值的应该用0来填充。应该显示如下:
1 2 0 0 0
3 4 5 6 7
但是好像不是跟我预期的一样,可能是我哪里弄错了。所以希望各位能够告诉我的误区在哪里。谢谢大家了。

解决方案 »

  1.   

    1. dt = dt.AddMonths(1); 2.记住数值的下表是从0开始
     Console.WriteLine(arr[0][1].ToString()); 3.你定义的不是二位数组,如果要定义为二维数组应该是 int[,] = new int[2,5]
      

  2.   

    dt.AddMonths(1);方法只是输出一个加了1月的值,
    http://msdn.microsoft.com/zh-cn/developercenters/system.datetime.addmonths.aspx
      

  3.   

    难道dt.AddMonths(1)这句话增加月份不是将dt增加月份,或者是添加月份但是没有保存到dt里面吗?
      

  4.   

    dt.AddMonths(1) 返回一个加一个月的DateTime对象,dt本身不变
      

  5.   

    1. dt = dt.AddMonths(1); 2.记住数值的下表是从0开始 
    Console.WriteLine(arr[0][1].ToString()); 3.你定义的不是二位数组,如果要定义为二维数组应该是 int[,] = new int[2,5]