传递空值

本文关键字:空值 | 更新日期: 2023-09-27 17:53:18

我有以下方法:

    //returns -1 on failure
    public static int Add(
        string name, string email, string password, short defaultNumWeek)
    {
        KezberPMDBDataContext db = new KezberPMDBDataContext();
        Employee employee = new Employee 
        { 
            EmployeName = name,
            EmployeEmail = email,
            EmployePassword = password,
            DefaultNumWeek = defaultNumWeek
        };
        db.Employees.InsertOnSubmit(employee);
        try
        {
            db.SubmitChanges();
        }
        catch (Exception)
        {
            return -1;
        }
        return employee.EmployeID;
    }

最后一个参数是可选的,在数据库中可以为空。我怎么能做到这一点,而不创建2个单独的方法?我还有一些不那么简单的。如何将基类型传递为空?

传递空值

使用Nullable类型作为

public static int Add(
        string name, string email, string password, short? defaultNumWeek)

EmployeeDefaultNumWeek性质也与Nullable相同。

static void Bar(Nullable<short> s)
{
}

static void Bar(short? s)
{
}

前者只是一个简写,参见使用可空类型

将定义更改为:

public static int Add(
        string name, string email, string password, short? defaultNumWeek = null)

这允许您调用相同的函数,同时省略defaultNumWeek参数。

直接传递,如果是null就不要使用

您可以使用可空类型来处理这个问题。c#有一个别名,您可以在结构类型(如short)上附加问号(?)。

这允许您将它与null进行比较,询问它是否有值等等。