在C#中,如果我从另一个未实例化的类调用一个方法,那么调用该方法时该类是否实例化?

在C#中,如果我从另一个未实例化的类调用一个方法,那么调用该方法时该类是否实例化?,c#,memory,memory-management,C#,Memory,Memory Management,当类Testy中的方法TryThis()调用State.FalconPunch()时,是否实例化了类状态(即使是暂时的)以执行FalconPunch()方法 我正试图决定静态状态是否是游戏中所有AI代理都必须使用的状态。它在移动平台上,因此我试图在编写时考虑到优化。如果不引用实例,就不能调用FalconPunch,因为它不是静态的 之前,必须手动创建新实例 简称: newstate().FalconPunch() 完成: var s=newstate();s、 鹰拳()FalconPunch不是

当类Testy中的方法TryThis()调用State.FalconPunch()时,是否实例化了类状态(即使是暂时的)以执行FalconPunch()方法


我正试图决定静态状态是否是游戏中所有AI代理都必须使用的状态。它在移动平台上,因此我试图在编写时考虑到优化。

如果不引用实例,就不能调用
FalconPunch
,因为它不是
静态的

之前,必须手动创建新实例

简称:
newstate().FalconPunch()

完成:
var s=newstate();s、 鹰拳()

FalconPunch不是静态方法,因此不会编译。您必须专门创建一个实例才能调用该方法。

它首先不会编译。(对不起,猎鹰船长…)你为什么不先试试?正如很多人提到的,这段代码甚至不会编译。在发布你的问题之前,你至少可以试一下。我试过了,这只是我的错误——在我使用的引擎中,类在游戏对象上的调用方式,它已经被视为一个实例,因此它可以在没有静态的情况下工作。当然,你可以始终使方法
静态
,在这种情况下,您不必首先创建类的实例。这可能就是询问者想要的。
class State
{
    public void FalconPunch()
    {
        Console.Writeline("Punched.")
    }
}

class Testy
{
    public void TryThis()
    {
        State.FalconPunch();
    }
}