c# – 从另一个类调用方法

我想知道如何从另一个类调用方法而不必创建该类的新实例.我已经看过了这个,我看到的90%的例子都要求我制作我引用的类的新副本.

像这样的东西:

Fooclass test = new Fooclass();
test.CallMethod();

但是,我想知道是否有一种方法可以在不创建新类实例的情况下调用该方法.现在我已经在团结中尝试了以下内容.

public ImageLoader image; 
void Start () 
{
    image = gameObject.GetComponent<ImageLoader>() as ImageLoader;
}

void OnClick()
{
    image.MoveForward();
}

但是,当我运行这个时,我收到以下错误:

NullReferenceException: Object reference not set to an instance of an object

我知道这将通过制作我的图像加载器类的新实例来解决,但我不能这样做,因为它持有大量数据我不想多次重复.

最佳答案
是的你可以.第一种方法是让你的班级变得静止.

public static class Fooclass
{
    // I don't know the return type of your CallMethod, so I used the void one.
    public static void CallMethod()
    {

    }
}

这样,无论何时对您的代码,您都可以调用CallMethod(),如下所示:

Fooclass.CallMethod()

另一个应用是在当前类中定义静态方法,而不需要类是静态的,如下所示:

public class Fooclass
{
    // I don't know the return type of your CallMethod, so I used the void one.
    public static void CallMethod()
    {

    }
}

现在,由于Fooclass的所有实例都将共享名为CallMethod的相同方法,因此您可以像下面这样调用它:

Fooclass.CallMethod()

尽管现在Fooclass现在不是一个静态类,但不需要再次实例化Fooclass类型的对象!

有关进一步的文档,请查看链接Static classes and Static Members.

转载注明原文:c# – 从另一个类调用方法 - 代码日志