在Unity中初始化类变量的最佳方法

时间:2017-08-25 06:01:38

标签: c# unity5

经过几年的C ++,我会在Unity中使用不同的语言(C#)。我正在做我的第一堂课。我的教授将一些变量声明为私有,但她在声明后立即初始化它们。在C ++中,我们永远不会在私有块中初始化私有数据成员,而是在构造函数中。根据我的阅读,我们不要在派生自it "fails to create user unless both are present" do expect { User.create!(:name => 'jo bloggs1')}.to raise_error(ActiveModel::MissingAttributeError) end 的类中使用构造函数。所以我的问题是:

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

2 个答案:

答案 0 :(得分:1)

我不能直接回答你的问题,而是很好的做法。

首先,C#自动为常用类型提供默认值(int> 0,char> 0(' \ 0'),float 0.0f,null为引用类型,.. 。)因此,除非您具有涉及特定初始值的特定行为(例如,为返回最小值的函数赋予int的最大值),否则不需要初始化它们。 此属性扩展到结构(包含int和字符串的结构将自动初始化为0,对于这些字段为null)。

对于参考类型,以及一般方式,任何需要自定义分配/初始化的东西,我通常会在构造函数中完成所有这些,因为,呃,这是他们的目的,制作你的对象准备用于外部用户。

对于Unity,初始化在Start()中也应该很好。

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

答案 1 :(得分:0)

是的,它确实没问题,但如果它们实现了MonoBehaviour,也可以在Start()方法中初始化它