Unity/C#中的“class”函数是什么?

5

我是Unity的新手。我的问题是,是否可以创建函数文件,而不需要构造函数和其他内容?在Flash ActionScript 3中,它看起来像这样:

package util
{
    public function getRandomNumber(minQ:Number = 0, maxQ:Number = Number.MAX_VALUE):Number 
    {
        return minQ + Math.random() * (maxQ - minQ);
    }   
}

是否可能做类似于这样的事情?


声明一个函数至少需要命名空间和类。你不必定义构造函数。 - timur
这听起来像是一个XY问题。为什么你想要这样做?你不喜欢类的哪些方面? - Sweeper
Unity自带的Random.range有什么问题? - BugFinder
1
你可以使用带有静态函数的静态类来实现像帽子这样的功能。 - Retired Ninja
#timur:你能解释一下吗?我的意思是,你能写一个例子或者提供一个链接吗? - András Nagy
显示剩余5条评论
2个回答

7
不,C#中不可能实现。我建议你学习扩展方法部分类。你也可以使用静态类和单例模式,但要避免在项目的各个部分频繁访问它——这将使未来的修改和重构变得困难。

1
谢谢你的回答。我可以用其他方法来完成它,只是好奇是否可能或者有没有相关的例子。现在我知道原因了。 - András Nagy

2

您无法创建全局函数,但您可以在静态类中创建静态方法:

namespace MyNamespace
{
   public static class Util
   {
      public static double GetRandomNumber(..) { ... }
   }
}

并像这样使用它

var myNumber = Util.GetRandomNumber(...);

这里重要的是 方法static 的,这意味着您不需要该类的实例来调用它。静态 意味着无法创建该类的实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接