c#:在类之间传递值(错误CS0120)
本文关键字:错误 CS0120 之间 | 更新日期: 2023-09-27 18:11:11
在下面的代码中,当我试图从其他类调用数组时,我得到了一个错误。出了什么问题?
错误CS0120:需要对象引用来访问非静态成员learningcsharp.Wall。基于"增大化现实"技术"(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 ();
}
}
}
你需要传递一个Wall to draw方法的实例作为参数
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);
}
这个错误字面上解释了该怎么做,但这里有一个来自Jamie Dixon的帖子的例子:
这是来自官方MSDM页面:创建对象/类我想这正是你所需要的。
我希望这对你有帮助。
好运或者直接将array标记为static:
private static int[] _ar;