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();
}
}
}
这里就是报错,可我看不出来帮帮忙吧
{
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();
}
}
}
这里就是报错,可我看不出来帮帮忙吧
改成
public int[] num = {10,20,30,40,50}
{
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();
}
}你没有创建对象的实例
由于public int[] num=new int[]{10,20,30,40,50}和public int this[int i]定义的是实例成员。而public static void Main()定义的是一个静态方法,静态方法只能够直接调用静态成员,而静态方法中是不允许调用未实例化的实例成员的。