经过几年的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 ++中,它们应该在其他地方初始化?
答案 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()方法中初始化它