【发布时间】:2017-10-03 15:53:56
【问题描述】:
我正在尝试检查一个对象的状态,如果它是 null 则我需要返回 null,否则我需要返回一个 Guid 或 Bool。
Portrait_Enabled = _SiteImagesModel_ImagesViewModel == null ? null : _SiteImagesModel_ImagesViewModel.Enabled,
Portrait_PrimaryImage = _SiteImagesModel_ImagesViewModel.PrimaryImage ?? null,
Portrait_RecordID = _SiteImagesModel_ImagesViewModel.RecordID ?? null,
Portrait_RelatedImage = _SiteImagesModel_ImagesViewModel.RelatedImage ?? null,
我已经尝试了?? 和? :,但我得到一个编译器错误说明:
- 无法确定条件表达式的类型,因为
<null>和bool之间没有隐式转换- 运算符
??不能应用于bool和<null>类型的操作数- 运算符
??不能应用于Guid和<null>类型的操作数
Guid 和 Bool 的值都是 Nullable。
【问题讨论】:
-
您分配给的变量和您的对象
_SiteImagesModel_ImagesViewModel的类型是什么?.. -
哪些行给出了实际错误,因为您的错误很清楚,可能只是一个小错误
-
?? null毫无意义。??运算符的目的是提供一个不同的值当左操作数为空时。 “如果值为 null,则使用 null”是多余的,它的功能等效于myBool == true。 -
您已经在异常内容中解释了所有内容。
Portrait_Enabled = _SiteImagesModel_ImagesViewModel == null ? null : _SiteImagesModel_ImagesViewModel.Enabled应该是Portrait_Enabled = _SiteImagesModel_ImagesViewModel == null ? null : (bool?)_SiteImagesModel_ImagesViewModel.Enabled -
还请展示大图 - 这是使用对象初始化器初始化方法的一部分 - 请展示它
标签: c#