人老了總是會遺忘.. 這是很久以前 C# 裡面就有的東西..
這也是為什麼在 JSON.net 中我們可以這樣寫..
jobject["Friend"]["Name"]
這就是透過索引子 indexer 所辦到的..
這跟array 很像但是不同的是他可以透過string 的方式去找尋某集合的個體
直接看程式
public class User
{
//所有User
private List<string> AllUser { get; set; }
//Ctor
public User(int num)
{
//Init
AllUser = new List<string>();
//使用者放入多少數字我就建立多少資料進入AllUser
for (int i = 0; i <= num; i++)
{
AllUser.Add("使用者" + i);
}
}
//Indexer 數字
public string this[int index]
{
get
{
if (index < AllUser.Count)
{
return AllUser[index];
}
else
{
return "Error";
}
}
set
{
AllUser[index] = value;
}
}
//Indexer Overloading 文字
public string this[string indexValue]
{
get
{
foreach (var user in AllUser)
{
if(user==indexValue)
{
return AllUser.IndexOf(user).ToString();
}
}
return "No User";
}
}
}
其中 AllUser 被我封裝起來…
之後我允許使用者透過indexer 透過數字去找尋AllUser
如果輸入文字 就會回覆 該User 所在位置..
操作端:
User users = new User(10);
Response.Write(users[9] + "<br />");
//使用者 9
Response.Write(users["使用者2"] + "<br />");
// 2
是不是超簡單的..解開一個我小小疑惑..
最近碰比較設計模型面的東西..
這東西在規劃上面很有幫助,也增加很多彈性..
MSDN: