在下面的代码中,当我尝试从另一个类调用该数组时,我收到错误。出了什么问题?
错误CS0120:访问非静态成员`learningcsharp.Wall.Ar'需要对象引用(CS0120)
using System;
namespace learningcsharp
{
public class Wall
{
private int[] _ar;
public int[] Ar
{
get
{
return _ar;
}
set
{
_ar = value;
}
}
public void build()
{
Ar = new int[] { 0, 0, 1, 0, 0 };
}
}
public class Draw
{
public void draw()
{
Console.WriteLine (Wall.Ar[1]); // ERROR CS0120
}
}
class MainClass
{
public static void Main (string[] args)
{
Wall wall = new Wall ();
wall.build ();
Draw draw = new Draw ();
draw.draw ();
}
}
}
答案 0 :(得分:3)
你需要传递一个Wall实例来绘制方法作为参数
public class Draw
{
public void draw(Wall wall)
{
Console.WriteLine (wall.Ar[1]);
}
}
你可以这样称呼:
public static void Main (string[] args)
{
Wall wall = new Wall ();
wall.build ();
Draw draw = new Draw ();
draw.draw (wall);
}
答案 1 :(得分:0)
错误说明了该怎么做,但这是Jamie Dixon的帖子中的一个例子:Object in C#
这是来自官方MSDM页面:Creating objects/classes 我认为这正是你所需要的。
我希望这可以帮助你。
祝你好运答案 2 :(得分:0)
或者只是将数组标记为静态:
private static int[] _ar;
也有财产。