2017-08-25 37 views
0

经过几年的C++之后,我用Unity统一了一种不同的语言(C#)。我正在做我的第一堂课。我的教授有一些变数被宣布为私人的,但她正在申报时立即初始化它们。在C++中,我们永远不会在私有块中初始化私有数据成员,而是在构造函数中初始化私有数据成员。从我读到的内容来看,我们不是在派生自MonoBehaviour的类中使用构造函数。所以我的问题是:在Unity中初始化类变量的最佳方式

可以初始化私人对象(字符串,整数等)在一个类中的声明在C#中吗?或者这是我们不应该做的事情,比如在C++中,他们应该在其他地方初始化?

回答

1

初始化它在开始()方法我不事没有直接回答你的问题,而不是好的做法。首先,C#自动为普通类型(int> 0,char> 0('\ 0'),float 0.0f,null为引用类型提供默认值,...),所以你不需要需要初始化那些,除非你有一个特定的行为涉及一个特定的初始值(例如,给一个函数返回一个最小值的int的最大值)。 此属性扩展到结构体(包含int和一个字符串的结构将自动初始化为0,并为这些字段为null)。

对于引用类型和一般方式,任何需要自定义分配/初始化的东西,如果可能的话,我通常会在构造函数中完成所有这些操作,因为这是它们的作用,使对象准备好用于extern用户。

在Unity的情况下,在Start()中初始化也应该是好的。

你的教授方式当然可以接受。更多信息: Initialization - Stack Overflow

0

没错这就是真的好,但也有可能,如果他们实现MonoBehaviour