【发布时间】:2013-05-17 23:15:46
【问题描述】:
大家好,我有以下代码:
namespace testingLeap
{
class Program : Listener
{
GestureListener listener;
Controller controller;
static void Main(string[] args)
{
listener = new GestureListener(500);
listener.onGesture += listener_onGesture;
Controller controller = new Controller(listener);
我想与程序中的其他静态 void 函数共享 listener 和 controller。但是,执行上述操作会出错:
非静态字段、方法或属性“testingLeap.Program.listener”需要对象引用
我会做错什么?我知道在 VB 中这是可行的:
Dim listener As New GestureListener(500)
Dim controller As New Controller(listener)
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
listener.onGesture += listener_onGesture
End Sub
【问题讨论】:
-
您拥有的代码不会按原样编译。您甚至无法从
Main访问listener,因为它不是静态的并且您没有实例。请注意,您展示的两个程序是完全不同的上下文。您显示的 VB 函数不是static(在 VB 中为shared)。