为什么我不能隐含地转换' int?'到' int'?

时间:2014-08-22 09:49:14

标签: c#

我试图将一个表的Id转换为一个int变量,但它并没有正常运行。

@foreach (var item in Model){
    int i = item.Ticket_Priority; //    actualy trying to get item.Ticket_Priority ID in integer butit is not working}

错误信息是"无法隐式转换' int?' to' int'。存在显式转换(您是否缺少演员?)

感谢您的支持。

2 个答案:

答案 0 :(得分:3)

你可以用??运营商:

int? i = 2;
int i2 = i ?? 0; // ?? checks if i is null

答案 1 :(得分:2)

错误消息为您提供所需的信息。

item.Ticket_PriorityNullable<int>int?,而非int。您可以使用.HasValue.Value属性来确定是否有值,然后使用它。

 // assuming you want a default value of 0
 int i = item.HasValue ? item.Value : 0;