再请教一个问题,也是关于程序解读的。谢谢
最近一直徘徊在程序的解读上,没办法完全看读懂,请问下有什么好的方法没?唉,连代码都看得不明不白的,又怎么来写程序呢?真的好累。肯请大虾们指点迷经。谢谢。
关于arr[i,j]=i+j; 这里它是如何跟索引器关联起来的呢?
经过循环之后,应该是得出这些值吧
arr[0,0]=0
arr[0,1]=1
arr[0,2]=2
arr[1,0]=1
arr[1,1]=2
arr[1,2]=3
i,j这里把值传入index1,index2
得到set{a[index1,index2]=value}
这里value是外部值,也就是得到
a[0,0]=0
a[0,1]=1
a[0,2]=2
a[1,0]=1
a[1,1]=2
a[1,2]=3
接着利用get{return a[index1,index2];}返回
Array2D arr=new Array2D(2,3);
这里传入参数给数组 a=new int[2,3]
就感觉哪里不对劲,说不上来。好奇怪。
下面是示例源码
using System;
using System.Collections.Generic;
using System.Text;
namespace Demo_4._2
{
class Array2D
{
int[,] a;
int rows, cols;
public Array2D(int r, int c) //构造函数
{
rows = r;
cols = c;
a = new int[rows, cols];
}
public int this[int index1, int index2] //二参数索引器
{
get { return a[index1, index2]; } //返回二维数组的一个元素
set { a[index1, index2] = value; } //对二维数组的一个元素赋值
}
}
public class Test
{
static void Main()
{
Array2D arr = new Array2D(2,3);
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
arr[i,j]=i+j; //设置索引器
Console.Write(arr[i,j]+""); //显示索引器
}
Console.WriteLine();
}
}
}
}
[[it] 本帖最后由 ywqsa206 于 2008-4-17 02:11 编辑 [/it]]