提问人:user2144480 提问时间:9/4/2023 最后编辑:marc_suser2144480 更新时间:9/4/2023 访问量:48
如何初始化不可为空的类型?
How to initialize a non nullable type?
问:
我被告知初始化我的结构数据,但我不能? 不可为 null:DeviceState
struct XControllers
{
public XInput.DeviceState device;
public bool connected;
}
...
XControllers controller;
controller.connected = false;
// can not init device
var previousState = controller.device.State;
错误:
使用可能未分配的字段“device”
答: 暂无答案
评论
device
XInput.DeviceState
可能是一个引用类型。您可以创建实例并将其分配给 。编译器和 .NET 运行时都不会神奇地为您创建这样的实例。如果不这样做,将保持其默认值。并且不是一个实例。尝试取消引用也不会成功,因为(这是 的值)不能取消引用。编译器在您的代码中注意到了这种情况,并对此嗤之以鼻。XInput.DeviceState
controller.device
controller.device
null
null
XInput.DeviceState
controller.device.State
null
controller.device.State