如何更好地从非可空类型初始化可空类型?

aba*_*hev 1 .net c# nullable

我的对象通常具有可空类型属性,用作SQL命令参数.

我下一步初始化它们:

public int? Amount
{
    get
    {
        int i;
        int? amount = null;
        if (Int32.TryParse(Request["amount"], out i))
        {
            amount = i;
        }
        return amount;
    }
}

command.Parameters.Add("@amount").Value = (object)this.Amount ?? DbNull.Value;
Run Code Online (Sandbox Code Playgroud)

如何重写这样的初始化代码以使其更短或更快

Mar*_*ell 8

首先,不要这样做; 你正默默地放弃你无法解析数据的事实!最好在这种情况下抛出异常,或处理预期的情况(null例如).

string val = Request["amount"];
return string.IsNullOrEmpty(val) ? (int?)null : (int?)int.Parse(val);
Run Code Online (Sandbox Code Playgroud)