在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
C#语言一个最令人感兴趣的地方就是类的索引器(indexer)。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的。本文就会引领你设置类来采用索引器。但是,首先让我们概述下属性这个概念以便了解些必要的背景知识。 class Person { private string firstname; public string FirstName { get {return firstname;} set {firstname = value;} } } 属性声明可以如下编码: Person p = new Person(); p.FirstName = "Lamont"; Console.WriteLine (p.FirstName);
下面是它的结构 <modifier> <return type> this [argument list] ...{ get ...{ // Get codes goes here } set ...{ // Set codes goes here } }
注: modifier:修饰词,如private, public, protected or internal this:在C#中this是一个特殊的关键字,它表示引用类的当前实例。在这里它的意思是当前类的索引。 argument list:这里指索引器的参数。 说了半天咱们转到正题上来,那么为什么我要兜这个圈子呢?其实,这是因为类的索引器非常像属性,从代码上看也是这样。以下是具有索引器的类示例,通过索引器会返回一个字符串: class Sample { public string this [int index] { get {return "You passed " + index; } } }
Sample s = new Sample(); Console.WriteLine(s[55]);
属性和索引器 interface IImplementMe { string this[int index] { get; set; }
class SampleCollection<T> { private T[] arr = new T[100]; public T this[int i] { get { return arr[i]; } set { arr[i] = value; } } } // This class shows how client code uses the indexer class Program { static void Main(string[] args) { SampleCollection<string> stringCollection = new SampleCollection<string>(); stringCollection[0] = "Hello, World"; System.Console.WriteLine(stringCollection[0]); } }
|
请发表评论