我正在制作一个简单的游戏,你可以帮我一个小的不确定性: 我必须命名一个类的新实例吗? 例如:
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)
足够?
答案 0 :(得分:1)
虽然新东西的做法不好而不是把它扔进变量,但是这段代码会编译并运行得很好。另外,你有一个名为CreateCharacter的类吗?而不是给定数据返回实际字符的函数?
答案 1 :(得分:1)
它不会导致程序在不存储的情况下死亡。
new CreateCharacter(data[e]);
但是,是的,你想存储它,以便你可以调用它上面的方法,如
CreateCharacter char = new CreateCharacter(string);
char.methodName();
您的另一个选择是将您尝试执行的代码放在static method
中,因为您在构造函数中运行的代码似乎不依赖于类CreateCharacter
的实例。
答案 2 :(得分:1)
您可以按照自己的说法单独调用构造函数。但是,请记住,新创建的对象将立即超出范围,并在构造函数完成后取消分配。因此,根据“//所有需要的东西”中包含的内容,它可能会使您的应用程序崩溃(尽管不太可能)。
正如其他答案中所述,将新创建的对象分配给变量是可读性和功能性的最佳实践,即使只是针对for循环的范围。
答案 3 :(得分:1)
如果您使用
新类(构造函数)
它是匿名对象,它完成了这项工作。只要未从代码的其他位置引用对象,就会使用此对象之王,其好处是您不应为此找到合适的名称。