我正在为我的数据库创建一个对象,我发现了一个我不明白的奇怪的东西:
我有一个应该通过 ID 引用“语言”的对象,但它可以为 null,所以我的属性是 int?(Nullable<int>)
所以首先我尝试使用对象初始化器:
myObject = new MyObject()
{
myNullableProperty = language == null ? null : language.id;
}
但是没用!它告诉我 null 不能转换为 int
但是如果我把它放在 if/else
中结构,我可以将 null 放入 var 中,然后将其分配给我的属性。
为什么会这样?
最佳答案
您可以尝试将 null
转换为 int?
,因为 ?:
运算符要求两个操作数返回相同的类型:
myNullableProperty = language == null ? (int?)null : language.id
关于c# - 为什么 ? : operator does not work with nullable<int> assignation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832129/