索引器允许类或结构的实例就像数组一样进行索引。 索引器类似于属性,不同之处在于它们的访问器采用参数。
在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法)。 Program 类为存储字符串创建了此类的一个实例。
public class DexerVehicle { public string type = ""; private Hashtable parts = new Hashtable(); private Hashtable parts2 = new Hashtable(); public DexerVehicle(string type) { this.type = type; } //索引 使用this定义 public object this[string key] { get { return parts[key]; } set { parts[key] = value; } } //属性 public object name { get { return parts2["doors"] = name; } set { parts2["doors"] = value; } } // 方法 public void Show() { Console.WriteLine(" ---------------------------"); Console.WriteLine(" Vehicle Type: " + type); Console.WriteLine(" Frame : " + parts["frame"]); Console.WriteLine(" Engine : " + parts["engine"]); Console.WriteLine(" #Wheels: " + parts["wheels"]); //属性 Console.WriteLine(" #Doors : " + parts2["doors"]); } }
class Program { static void Main(string[] args) { DexerVehicle vehicle = new DexerVehicle("car"); //索引器允许类或结构的实例就像数组一样进行索引 vehicle["frame"] = "你好"; vehicle["engine"] = "你好1"; vehicle["wheels"] = "你好2"; vehicle.name = "张三"; vehicle.Show(); Console.ReadLine(); } }
-
使用索引器可以用类似于数组的方式为对象建立索引。
-
get 访问器返回值。 set 访问器分配值。
-
this 关键字用于定义索引器。
-
value 关键字用于定义由 set 索引器分配的值。
-
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
-
索引器可被重载。
-
索引器可以有多个形参,例如当访问二维数组时。