黑马程序员——C#面向对象之索引器
来源:互联网 发布:java rest api是什么 编辑:程序博客网 时间:2024/05/19 19:44
-------Windows Phone 7手机开发、.Net培训、期待与您交流! -------
-->C#面向对象——索引器,开始学完之后,感觉要写得这么麻烦,有什么用啊,可是当与普通使用集合之后,索引器的作用那是没话说,太给力了。
-->集合——ArrayList具有很强的通用性,集合方法:Add与AddRange、Insert与InsertRange、Remove与RemoveAt、Sort与Reverse、IndexOf与LastIndexOf、Contains等,集合可以通过索引来访问,但是有局限性,但是通过索引器就不一样了。
-->集合与索引器的比较:
-->集合——ArrayList的例子
class Person
{
private string name;
private char gender;
private int age;
public Person(string name, int age, char gender)
{
this.name = name;
this.age = age;
this.gender = gender;
}
public void SayHello()
{
Console.WriteLine("大家好,我叫{0},今年{1}岁了,是一名{2}生!",name,age,gender);
}
}
//使用集合——ArrayList
ArrayList al = new ArrayList();
al.Add(new Person("zhangsan",23,'男'));
al.Add(new Person("xiaolan",34,'女'));
//遍历,让集合al中的所有对象执行方法
for (int i = 0; i < al.Count; i++)
{
//由于al[i]是object类型的,所以要强制转换
Person p = (Person)al[i];
p.SayHello();
//或者用((Person)al[i]).SayHello();
}
-->索引器的例子
class Person2
{
ArrayList al;
public Person2()
{
al = new ArrayList();
}
public int Count
{
get { return al.Count; }
}
//只写一个添加和索引
public int Add(Person p)
{
return al.Add(p);
}
public Person this[int index]
{
get { return (Person)al[index]; }
set {al[index]=value;}
}
}
//使用索引器
Person2 p2 = new Person2();
p2.Add(new Person("zhangsan",23,'男'));
p2.Add(new Person("xiaolan",33,'女'));
for (int i = 0; i < p2.Count; i++)
{
p2[i].SayHello();
}
-->((Person)al[i]).SayHello();与p2[i].SayHello();两者的代码比较可读性还是理解难度都是显而易见的。
-->索引器语法:
[访问修饰符] 返回类型 this[索引类型 索引名] //this在类的内部,代表当前实例,引用。
{
//get或set方法体
}
-->索引器是为了方便将类、结构等“非数组”当做“数组”来使用,用于封装内部集合的内容,可以包括任何东西。
-------Windows Phone 7手机开发、.Net培训、期待与您交流! -------
- 黑马程序员——C#面向对象之索引器
- 黑马程序员——C#面向对象
- 黑马程序员——C#面向对象
- 黑马程序员之c#面向对象二
- 黑马程序员-C#面向对象之封装
- 黑马程序员-C#面向对象之继承
- 黑马程序员—Java之面向对象
- 黑马程序员—面向对象
- 黑马程序员—面向对象
- 黑马程序员—面向对象
- 黑马程序员——C#面向对象基础复习日记
- 黑马程序员——C#面向对象加强
- 黑马程序员——C#面向对象之多态
- 黑马程序员——C#面向对象小知识点
- 【黑马程序员】C#之索引器
- 黑马程序员之C#学习笔记:面向对象小结
- 黑马程序员之C#学习笔记:面向对象
- 黑马程序员 自学17C#面向对象之基本概念
- 数据存储知识扫盲
- JBPM4.4---ForEach测试Dome
- Verilog中“&”和“&&”在硬件中的区别
- mac下在NSThread线程中reloadData的正确方法
- Win A free copy of the Oracle E-Business Suite R12 Integration and OA Framework Development Book
- 黑马程序员——C#面向对象之索引器
- FILETIME
- 平台gpsr协议仿真步骤
- opnet一些使用心得
- 菜鸟编程VB.NET登录窗体之面向过程
- webservice 入门
- poj_2253_prim / floyed
- poj_2485_kruskal
- poj 1065_贪心