不可空整型可以为空吗?

本文关键字:整型 | 更新日期: 2023-09-27 18:14:42

我修改了ASP. NET Identity 2.0扩展了身份模型,以便使用int键代替字符串(GUID)。. NET Identity 2.0扩展身份模型,使用整数键代替字符串,并修改了一些方法的逻辑,如下所示:

public async Task<ActionResult> Details(string id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    var user = await UserManager.FindByIdAsync(id);
    ViewBag.RoleNames = await UserManager.GetRolesAsync(user.Id);
    return View(user);
}

:

public async Task<ActionResult> Details(int id)
{
    if (id > 0)
    {
        // Process normally:
        var user = await UserManager.FindByIdAsync(id);
        ViewBag.RoleNames = await UserManager.GetRolesAsync(user.Id);
        return View(user);
    }
    // Return Error:
    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}

另一方面,而不是改变逻辑,我只是想改变条件在if块,但我不确定什么是最好的方法来检查null值为int?

原来的方法是这样的:

if (id == null) //id is string

由于我必须将string更改为int类型,因此我需要检查null,如下所示:

if (id !> 0) //id is int 

任何想法?

不可空整型可以为空吗?

普通整数不能为空,默认为0。如果你想要一个可空的整数,你需要使用int?,然后你可以检查它是空还是0,像这样:

if (id == null) //!id.HasValue
{
    //some stuff
} else if(id == 0) {
    //other stuff
}