對於下面的索引器,它應該是這樣的:{}用戶可以傳遞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