传递空值
本文关键字:空值 | 更新日期: 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)
Employee
的DefaultNumWeek
性质也与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进行比较,询问它是否有值等等。