【发布时间】:2015-10-30 14:20:16
【问题描述】:
我有一个简单的问题。
假设我有如下课程。
public class DamageToDeal
{
public bool enabled;
public float value;
public TDValue type;
public DamageToDeal() { }
public DamageToDeal(bool _enabled, float _value, TDValue _type)
{
enabled = _enabled;
value = _value;
type = _type;
}
}
我读到如果我有自定义构造函数,默认值不会自动生成
我必须用默认值(0,null)自己初始化字段还是使用空主体的默认构造函数来初始化字段?
或者如果默认构造函数正在初始化字段,即使他的主体是空的?
【问题讨论】:
-
字段被初始化为默认值,所以你不需要
-
但是我必须有这个空的构造函数是吗?
-
@Filus1025 除非你没有其他构造函数,是的,你必须声明它。
-
TDValue是您唯一需要担心的事情。做一个字段初始化怎么样? -
当你有一个带参数的构造函数就足够了,不需要无参数的ctor。无论如何,您的所有值都被初始化为其默认值(
TDValue为 null)。