我正在为我的数据库创建一个对象,我发现了一个奇怪的东西,我不明白:
我有一个对象应该用ID引用"语言",但这可以为null,所以我的属性是 int?(Nullable<int>)
所以我首先尝试使用对象初始化器:
myObject = new MyObject()
{
myNullableProperty = language == null ? null : language.id;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用!它告诉我null无法转换为int
但是如果我在一个if/else结构中,我可以在var中放入null,然后将其分配给我的属性.
为什么这样做?
您可以尝试转换为nullto,int?因为?:运算符需要两个操作数返回相同的类型:
myNullableProperty = language == null ? (int?)null : language.id
Run Code Online (Sandbox Code Playgroud)