C#中的索引器

说到索引器:大家都知道用下标来访问数组元素,而索引器与之类似,它允许类或者

* 结构的实例像数组哪样被访问,索引器是一类特殊的成员,他的定义方式与属性类似,只不过用

* this代替了属性名。其语法格式:

* 访问修饰符 数据类型 this [索引]

* {

* get { get访问器代码块 }

* set{set 访问器代码块}

* }


这里需要注意的就是 set没有返回值,代码块中不可以有 return 等字样


class Book

{

private long Isbn; //书的ISBN号

private string BookName; //书名

private decimal Price; //价格


public Book(long no,string name,decimal p)

{

Isbn=no;

BookName=name;

Price = p;

}

public string Display()

{

return String.Format("BookName-->{0}\tISBN-->{1}\tPrice-->{2}元",

BookName,Isbn,Price);

//Format 将任意类型的数据转换为字符串

}


}


class Shop

{

private Book[] books = new Book[10];

private int count = 0;


public int Count

{

get { return count; } //取数据

set { count=value; } //存数据

//由于“联习2.Shop.Count.set”返回 void,返回关键字后面不得有对象表达式


}

public Book this[int n]

{

get { return books[n]; }

set

{

if (books[n] == null)

count++;

books[n] = value;

}

}


}

#endregion

class Program

{

static void Main(string[] args)

{

Shop BookShop = new Shop();

Book book1=new Book(10,"VC#程序设计",23.5m);

Book book2 = new Book(20, "VB程序设计", 89m);

BookShop[0] = book1; //使用索引器的set访问器

BookShop[1] = book2; //使用索引器的set访问器

Book book3 = BookShop[BookShop.Count-1];//使用索引器的get访问器

Console.WriteLine(BookShop[0].Display());

Console.WriteLine(book3.Display());

Console.Read();

}

}



输出结果


214451560.png


本文出自 “紫金飞侠雷” 博客,请务必保留此出处http://leige1992.blog.51cto.com/5524181/1300815

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值