class A 
{
private string _value;
public string myValue
{
get {return _value;}
set {_value = value;}
}
}class B
{
private A[] a = new A[20];
public A aInstance
{
   get (int i){return a[i].myValue;}  //这里不会写
   set .... {a[i].myValue = value;}   //这里不会写
}
}谢谢..

解决方案 »

  1.   

    public A this[int i]
    {
       get return a[i].myValue;}  //这里不会写
       set .... {a[i].myValue = value;}   //这里不会写
    }
      

  2.   

    private int[] a = new int[100];

    public int this[int index]
    {
    get
    {
    return a[index];
    }
    set
    {
    if(index>0&&index<100)
    a[index] = value;
    }
    }
      

  3.   

    private int[] a = new int[100];

    public int this[int index,int i, int j,int m ,int n]
    {
    get
    {
    return a[index];
    }
    set
    {
    if(index>0&&index<100)
    a[index] = value;
    }
    }
      

  4.   

    谢了~~原来如此啊public A this[int index] 的this 代表什么意思呢? 怎么理解,A的自身引用?
    {
    get{}
    set{}
    }
      

  5.   

    public A this[int index] 
    {
    get{}
    set{}
    }这一段是类的索引(Indexer),this是引用当前类对象吧,我觉得是这样
      

  6.   

    我如何赋值或获取值呢,我写的测试
    using System;namespace Test
    {
    public class ccc
    {
    private string a1;
    private string a2;
    public ccc()
    {}
    public string A1
    {
    get{return a1;}
    set{a1 = value;}
    }
    public string A2
    {
    get{return a2;}
    set{a2 = value;}
    } public void Say()
    {
    Console.WriteLine ("my say");
    } }
    /// <summary>
    /// Class2 的摘要说明。
    /// </summary>
    public class Class2
    {
    private string Cl2="Class2";
    private ccc [] a; public Class2()
    {
    a = new ccc [5];
    for (int i=0;i<5;i++)
    {
    a[i].A1 = "a1-" + i.ToString ();
    a[i].A2 = "a2-" + i.ToString ();
    }

    }
    public string name
    {
    get{return Cl2;}
    set{Cl2=value;}
    }
    public ccc this[int i]
    {
    get {return a[i];}
    set {a[i]=value;}
    }
    }
    }//这里调用
    private void button10_Click(object sender, System.EventArgs e)
    {
    Class2 c = new Class2 ();
    Console.WriteLine (c[2].A2); //感觉很别扭(这不成了自己为数组了吗,我那样写就是为了不想将自己变成数组),然后,果然是出错了 Console.WriteLine (c[4].A1); //我的想法是写 c.a[3].A2 这种形式(美观又好看),还可以改成 c.a[Name].A2 = xxx;类似这样
    }我的想法是一个类中包含一个数组(另一个类的引用),并获取或设置该数组的值实现类似于 dataSet.Table[0].Rows[2] 这样的类结构.再次谢谢!