【发布时间】:2021-08-01 20:12:26
【问题描述】:
如果我的对象值之一为 null 并且如果没有将其设置为不同的变量值,我有以下代码尝试将 sql 参数设置为 null。
理想情况下,我只会让enumvalue 为空,但由于这是EnumListValues 的枚举转换,空值似乎默认为0。所以我想出的三元解决方案是解决这个问题。如果object1 不存在,我不希望我的enumvalue 变量为0。
public enum EnumListValues
{
Disabled = 0,
Enabled = 1
}
Enum.TryParse(object1?.Value, out EnumListValues.LightStatus enumvalue);
new SqlParameter("object1param", SqlDbType.Bit) {Value = object1 != null ? enumvalue : DBNull.Value } //enumvalue is 0 or 1
但是我得到了错误:
错误 CS8370
C# 7.3 中不提供“目标类型条件表达式”功能。请使用语言版本 9.0 或更高版本
【问题讨论】:
-
你尝试更新项目c#版本了吗?
-
这是针对我的问题的推荐解决方案吗?我只是想知道这是否是解决我的问题的最佳方法,或者我是否应该尝试不同的方法。
-
你可以在这里试试拳击
{Value = object1 != null ? (object)enumvalue : (object)DBNull.Value } -
@Eldar 只需要将其中一个转换为
object,然后操作员就会知道隐式转换另一个。