[C#] 索引子- Indexer
2012-10-04
人老了總是會遺忘.. 這是很久以前 C# 裡面就有的東西..
這也是為什麼在 JSON.net 中我們可以這樣寫..
jobject["Friend"]["Name"]
這就是透過索引子 indexer 所辦到的..
這跟array 很像但是不同的是他可以透過string 的方式去找尋某集合的個體
直接看程式
public class User
{ //所有Userprivate List<string> AllUser { get; set; }
//Ctorpublic User(int num)
{ //InitAllUser = new List<string>();
//使用者放入多少數字我就建立多少資料進入AllUserfor (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 />");//使用者 9Response.Write(users["使用者2"] + "<br />");
// 2
是不是超簡單的..解開一個我小小疑惑..
最近碰比較設計模型面的東西..
這東西在規劃上面很有幫助,也增加很多彈性..
MSDN:
http://msdn.microsoft.com/en-us/library/2549tw02
標籤:
C#
-- Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer. 如果這篇文章有幫助到您,簡單留個言,或是幫我按個讚,讓我有寫下去的動力...
