我必须为一个新的类实例指定名称吗?
本文关键字:实例 定名称 一个 | 更新日期: 2023-09-27 18:07:06
我正在用unity制作一款简单的游戏,并且有一些不确定因素你可以帮助我:我必须命名类的新实例吗?例如:
public class CreateCharacter : MonoBehaviour {
public string charname;
public CreateCharacter (string charname)
{
this.charname = charname;
//does all the stuff needed
}}
我想从另一个脚本运行:
int e = data.Length - 1;
if (e > 0)
{
new CreateCharacter(data[e]);
e--;
}
data是一个字符串数组,CreateCharacter将把新的Character对象存储在一个这样的对象列表中,因此我可以稍后访问它。我的问题是:我一定要写:
CreateCharacter SomeName = new ChreateCharacter
让代码运行?还是简单的
new Class (constructor)
足够了吗?
虽然这是一个糟糕的做法,新的东西,而不是把它扔到一个变量,代码将编译和运行良好。另外,是否有一个叫做CreateCharacter的类的原因?而不是一个函数,返回一个实际字符给定的数据?
您可以像您所说的那样单独调用构造函数。但是,请记住,新创建的对象将在构造函数完成后立即脱离作用域并被释放。因此,根据"//做所有需要的东西"中包含的内容,它可能-潜在地-崩溃你的应用程序(尽管这不太可能)。
正如在其他答案中所述,将新创建的对象赋值给变量是一种可读性和功能性的最佳实践,即使仅用于该for循环的作用域。
不存储它不会导致程序死亡。
new CreateCharacter(data[e]);
但是,是的,你想要存储它这样你就可以调用它的方法,比如
CreateCharacter char = new CreateCharacter(string);
char.methodName();
您的另一个选择是将您试图在static method
中执行的代码,因为似乎您在构造函数中运行的代码不依赖于类CreateCharacter
的实例。
如果使用
new Class (constructor)
是匿名对象,它完成了任务。只要对象不从代码的其他地方引用,就使用这个对象之王,它的好处是您不需要为它找到合适的名称。