对于下面的索引器,它应该是这样的:{}用户可以传递employeeid或firstname,set {}只能传递employeeid。我们可以限制索引器中索引器的数目吗?
下面是代码:
public Employee this[int employeeid = 0,string firstname = ""]
{
get
{
if (employeeid != 0)
{
return Employees.FirstOrDefault(emp => emp.No == employeeid);
}
else
{
return Employees.FirstOrDefault(emp => emp.FirstName == firstname);
}
}
set
{
if (employeeid == value.No)
{
Employees.FirstOrDefault(emp => emp.No == employeeid).FirstName = value.FirstName;
Employees.FirstOrDefault(emp => emp.No == employeeid).LastName = value.LastName;
}
else
{
ArgumentException argEx = new ArgumentException("Falied to update");
System.Windows.Forms.MessageBox.Show(argEx.Message);
}
}
}
我只是想知道有没有这将限制在设定的操作通过索引的数量和类型,任何语法。 或者干脆添加一个新的索引器,该集合显然起作用。
下一篇“只是因为你可以,并不意味着你应该” – Jamiec
OK参数是常见的set和get。只有可选参数的功能而不限制参数。例如,如果一个函数有两个参数int和string。然后,如果用户可以给int或字符串,但不是两者。你不觉得我们需要一个新的函数语法来使这成为可能。索引器和函数是不同的,但关于参数部分相似。所以我提出这个问题。 –
@NithinB你需要使用方法重载,这是方便你的情况下可选参数。 – user3185569