日期:2014-05-18  浏览次数:20898 次

简单代码的问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestIndex2
{
  public class MyIndex
  {
  int m, n;
  Array MyArray;

  public MyIndex(int m, int n)
  {
  this.m = m;
  this.n = n;
  MyArray = Array.CreateInstance(typeof(object), m * n);
  }
  //把二维数组的下标转换为一个一维数组的相应的下标
  public object this[int i, int j]
  {
  get
  {
  int k = i * m + n;
  return MyArray.GetValue(k);
  }
  set
  {
  int k = i * m + n;
  MyArray.SetValue(value, k);
  }
  }

  class Program
  {
  static void Main(string[] args)
  {
  //定义了一个类二行三列对象
  MyIndex myArray = new MyIndex(2, 3);

  //通过调用set 存取器来修改对象myArray的第二列和第三列处元素
  myArray[1, 2] = 2.5;
   
  Console.WriteLine("数组的值为:" + myArray[1, 2]);

  }
  }
  }
}

请问:这是书上的一个程序例子,
public object this[int i, int j] 这里有参数j,下面没有用到j啊,是不是错误?
还有这里的i ,j没有初始化吗? 还是已经隐含的初始化为0 了?

谢谢


------解决方案--------------------
请问:这是书上的一个程序例子,
public object this[int i, int j] 这里有参数j,下面没有用到j啊,是不是错误?
还有这里的i ,j没有初始化吗? 还是已经隐含的初始化为0 了?

定义了一百个参数,只是用了10个参数算错误码?

还有这里的i ,j没有初始化吗? 还是已经隐含的初始化为0 了?

i ,j是从外部传入的参数,相当于定义了一个函数,函数的参数是从外边传进来的,