黑马程序员——C#面向对象之索引器
2013-05-02 12:02
141 查看
-------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#面向对象——索引器,开始学完之后,感觉要写得这么麻烦,有什么用啊,可是当与普通使用集合之后,索引器的作用那是没话说,太给力了。
-->集合——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#面向对象三大基本特征(封装)(02)
- 黑马程序员--C#面向对象(一)
- 黑马程序员--C#中面向对象与面向过程
- 【黑马程序员】C#之索引器
- 黑马程序员-- .Net学习日记——c#面向对象-方法
- 黑马程序员-C#面向对象之多态
- 黑马程序员之c#面向对象二
- 黑马程序员————————C#基础知识之面向对象(一)
- 【黑马程序员】c#面向对象的基础(学习笔记)
- 黑马程序员——C#面向对象
- 黑马程序员——C#面向对象之多态
- 黑马程序员_C#面向对象(概念,访问级别,属性)
- 黑马程序员————————C#基础知识之面向对象(二)
- 黑马程序员--学习笔记--C#面向对象
- 黑马程序员之C#学习笔记:面向对象
- 黑马程序员 自学18C#面向对象之访问修饰符与属性
- 黑马程序员-C#索引器