我有以下方法:
//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;
}
最后一个参数是可选的,在数据库中可以为null。如何在不创建两个单独方法的情况下执行此操作?我还有其他不那么简单的东西。如何将基类型传递为null?
答案 0 :(得分:9)
将Nullable
类型用作
public static int Add(
string name, string email, string password, short? defaultNumWeek)
<DefaultNumWeek
Employee
Nullable
的属性{{1}}也属于{{1}}。
答案 1 :(得分:3)
static void Bar(Nullable<short> s)
{
}
或
static void Bar(short? s)
{
}
前者只是一个简短的手,见Using Nullable Types
答案 2 :(得分:3)
将定义更改为:
public static int Add(
string name, string email, string password, short? defaultNumWeek = null)
这允许您在省略defaultNumWeek
参数的同时调用相同的函数。
答案 3 :(得分:0)
只要传递它,如果它为空则不要使用它。
答案 4 :(得分:0)
您可以使用Nullable Types处理此问题。 C#有一个别名,您可以在其中将问号(?)附加到结构类型(如short)。
这允许您将其与null进行比较,询问它是否具有值等等。