gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:10:44 25 4
gpt4 key购买 nike

我想知道如何在不创建该类的新实例的情况下调用另一个类的方法。我查过这个,我看到的 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# - 从另一个类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com