索引器属性定义后发现它的属性名为 Item ,经实验,如果在一个类里同时定义索引器和Item属性会报告重复定义的错误,问题是,当没有定义索引器而只是定义了Item的时候和定义了索引器的时候,怎么识别这个属性是索引器属性还是普通变量/属性?

解决方案 »

  1.   

    try
    一下,看看有没有异常.
      

  2.   

    不是异常,我是想通过 GetProperties 获得所有属性后,判断某个属性是 索引器 还是 普通属性。现在只是简单的通过判断 属性名 是否 Item,但这个不保险呀。
      

  3.   


                foreach (PropertyInfo pi in typeof(TestClass).GetProperties(BindingFlags.Public | BindingFlags.Instance))
                    Console.WriteLine(pi.GetIndexParameters().Length);//看看它GetIndexParameters获取的数组长度是否为0,为0则为普通属性,大于0则为索引器