加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 02:00:47 所属栏目:百科 来源:网络整理
导读:我想知道如何从另一个类调用方法而不必创建该类的新实例.我已经看过了这个,我看到的90%的例子都要求我制作我引用的类的新副本. 像这样的东西: Fooclass test = new Fooclass();test.CallMethod(); 但是,我想知道是否有一种方法可以在不创建新类实例的情况
我想知道如何从另一个类调用方法而不必创建该类的新实例.我已经看过了这个,我看到的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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读