using System;namespace ConsoleApplication1
{
public class Btest
{
public int[] num=new int[]{10,20,30,40,50};
public int this[int i]
{
get
{
return num[i];
}
set
{
if(value>100)
num[i]=value;
}
}
public static void Main()
{

Console.WriteLine(num[4]);
num[4]=90;
Console.WriteLine(num[4]);
num[4]=200;
Console.WriteLine(num[4]);
Console.ReadLine();
}
}
}
这里就是报错,可我看不出来帮帮忙吧

解决方案 »

  1.   

    public int[] num=new int[]{10,20,30,40,50};
    改成
    public int[] num = {10,20,30,40,50}
      

  2.   

    public class Btest
        {
            public int[] num=new int[]{10,20,30,40,50};
            public int this[int i]
            {
                get
                {
                    return num[i];
                }
                set
                {
                    if(value>100)
                        num[i]=value;
                }
            }
            public static void Main()
            {
    Btest a = new Btest();
                Console.WriteLine(a.num[4]);
                a.num[4]=90;
                Console.WriteLine(a.num[4]);
                a.num[4]=200;
                Console.WriteLine(a.num[4]);
                Console.ReadLine();
            }
        }你没有创建对象的实例
      

  3.   

    呵呵,一时大意,答错了。先say声sorry.robin1986
      

  4.   

    楼上正解
    由于public int[] num=new int[]{10,20,30,40,50}和public int this[int i]定义的是实例成员。而public static void Main()定义的是一个静态方法,静态方法只能够直接调用静态成员,而静态方法中是不允许调用未实例化的实例成员的。