A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 袁晓俊 于 2014-4-25 16:26 编辑

属性和索引器的异同点?求指导(代码案例说明),,,

3 个回复

倒序浏览
  1. 索引器类似于属性,不同之处在于它们的访问器采用参数。



  2. [访问修饰符]数据类型this[数据类型 标识符]                                                               

  3. {

  4.        get{}

  5.        set{}

  6. }

  7. 例子: private int[] arr=new int[100];

  8. public int this[int i]

  9. {

  10.       get{return arr[i];}

  11.       set{arr[i]=value;}

  12. }

  13. 1.       索引器是属性的一种,它本质上和属性一样是方法。

  14. 2.       索引器的类型和集合元素的类型一致

  15. 3.       索引器没有名称 (this关键字为标志)

  16. 4.       索引器至少有一个参数eg:this(int i)

  17. 5.       索引器可以重载,因此一个类中可以有多个索引器,调用时索引器通过数组下标索引;索引器是针对集合类型成员变量的                                                                                                     

  18. eg:  Stu[0]=1;

  19. Stu[1]=2;

  20. 1.       属性是封装的一种方法。是专门来控制访问性的一种语法结构,成员变量定义为私有类型(因为变量是表示对象特征的,不可以随便修改,为了安全性。)

  21. 2.       Value是关键字,它的类型取决于属性的数据类型;

  22. 3.       属性的访问修饰符为public(总是),属性有类型,它的类型取决于成员变量的类型。

  23. 4.       当修改属性或为属性赋值时,将值先传给value,再赋给成员变量;

  24. 5.       属性的类型分为三类:只读(get) 读写(get&&set) 只写(set)

  25. 6.       Set:set访问器  get:get访问器

  26. 7.       属性名与成员变量同名,书写时首写字母必须大写

  27. 8.       书写格式:

  28. 访问修饰  返回类型 属性名

  29. {

  30.       Set{语句集合;}

  31. Get{语句集合;}

  32. }

  33. 例子:

  34. Private int name;

  35. Public string Name

  36. {

  37.       Set{return name;}//语句后要加“;”号

  38. Get{name=value;}

  39. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
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.索引器可以有多个形参,例如当访问二维数组时。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
感谢,,,,,,,,,,,,,,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马