C# - 从类内部调用方法

时间:2009-01-27 09:45:22

标签: c# c#-3.0 reference methods

如何从客户端代码中定义的类中调用客户端代码方法?

例如,我有一个内存读取类,可以从某个地址的进程内存中读取值。我还有用于管理从内存中读取的数据类型的类(我正在阅读游戏中的'对象'。在'客户端代码'中我计算内存中该对象的'基地址',然后初始化我的'对象类'使用一个构造函数,它以'基地址'作为参数。这个基类应该能够通过方法告诉我关于该对象的事情,因为对象知道离基地址有多远,某个值是,例如'健康')

我尝试使用这样的代码,但它给了我一个错误。 'ObjectManager'是可以从内存中读取值的类。

class ObjectManager : Memory
{
    LocalCharacter LocalPlayer = new LocalCharacter(this);
    // other things omitted
}
// Error: Keyword 'this' is not available in the current context

这是出于绝望:

class ObjectManager : Memory
{
    LocalCharacter LocalPlayer = new LocalCharacter(ObjectManager);
    // other things omitted
}
// Error: Keyword 'this' is not available in the current context

但无济于事。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:10)

如何在构造函数中引用'this': -

class ObjectManager : Memory
{
    ObjectManager()
    {
        LocalPlayer = new LocalCharacter(this);
    }

    LocalCharacter LocalPlayer;
    // other things omitted
}

答案 1 :(得分:0)

因为你不在方法中。

您必须声明一种方法来访问它。您的主要功能将调用该呼叫。

如果您希望设置类级别字段,则需要在构造函数中执行此操作。您仍然在类定义中声明变量(不在方法中)

class ObjectManager : Memory
{
   public void mymethod()
   {
      LocalCharacter LocalPlayer = new LocalCharacter(this);
   }
}