黑马程序员技术交流社区
标题:
属性和索引器的异同点?求指导(案例说明)
[打印本页]
作者:
袁晓俊
时间:
2014-4-25 14:52
标题:
属性和索引器的异同点?求指导(案例说明)
本帖最后由 袁晓俊 于 2014-4-25 16:26 编辑
属性和索引器的异同点?求指导(代码案例说明),,,
作者:
Mekor
时间:
2014-4-25 15:01
索引器类似于属性,不同之处在于它们的访问器采用参数。
[访问修饰符]数据类型this[数据类型 标识符]
{
get{}
set{}
}
例子: private int[] arr=new int[100];
public int this[int i]
{
get{return arr[i];}
set{arr[i]=value;}
}
1. 索引器是属性的一种,它本质上和属性一样是方法。
2. 索引器的类型和集合元素的类型一致
3. 索引器没有名称 (this关键字为标志)
4. 索引器至少有一个参数eg:this(int i)
5. 索引器可以重载,因此一个类中可以有多个索引器,调用时索引器通过数组下标索引;索引器是针对集合类型成员变量的
eg: Stu[0]=1;
Stu[1]=2;
1. 属性是封装的一种方法。是专门来控制访问性的一种语法结构,成员变量定义为私有类型(因为变量是表示对象特征的,不可以随便修改,为了安全性。)
2. Value是关键字,它的类型取决于属性的数据类型;
3. 属性的访问修饰符为public(总是),属性有类型,它的类型取决于成员变量的类型。
4. 当修改属性或为属性赋值时,将值先传给value,再赋给成员变量;
5. 属性的类型分为三类:只读(get) 读写(get&&set) 只写(set)
6. Set:set访问器 get:get访问器
7. 属性名与成员变量同名,书写时首写字母必须大写
8. 书写格式:
访问修饰 返回类型 属性名
{
Set{语句集合;}
Get{语句集合;}
}
例子:
Private int name;
Public string Name
{
Set{return name;}//语句后要加“;”号
Get{name=value;}
}
复制代码
作者:
许庭洲
时间:
2014-4-25 15:02
1. 索引器允许类或结构的实例就像数组一样进行索引。
2. 索引器类似于属性,不同之处在于它们的访问器采用参数。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class SampleCollection<T>
{
private T[] arr = new T[100];
publicT this[int i]
{
get
{
return arr;
}
set
{
arr = value;
}
}
}
// This class shows how client code uses theindexer
class Program
{
staticvoid Main(string[] args)
{
SampleCollection<string> stringCollection = newSampleCollection<string>();
stringCollection[0] = "Hello, World";
System.Console.WriteLine(stringCollection[0]);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
3.使用索引器可以用类似于数组的方式为对象建立索引。
4. get 访问器返回值。set 访问器分配值。
5.this 关键字用于定义索引器。
6. value 关键字用于定义由 set 索引器分配的值。
7.索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
8.索引器可被重载。
9.索引器可以有多个形参,例如当访问二维数组时。
作者:
袁晓俊
时间:
2014-4-25 16:26
感谢,,,,,,,,,,,,,,,,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2