通过索引器简化C#类型信息访问

前言

作为一个有别于Java、Ruby等语言的一个特性,C#可以用索引器(Indexer)将类型本身以对象数组的形式供外部使用。下面是一个对比:(为了简化,略去了边界检查)

相关厂商内容

QClub:当SOA遭遇现实(7.26 杭州)

不难看出通过引入索引器,我们的目标类型DataAccess在涉及到根据编号检索的时候看上去更接近一个数组的样子,客户程序的开发人员不用关心具体的方法名称是GetData/GetInternalData或者是SetData/ UpdateData,仅仅把它当成一个数组就可以了,编码上也更加简洁、直观。

时间: 2024-12-23 09:00:42

通过索引器简化C#类型信息访问的相关文章

用索引器简化的C#类型信息访问

"C#中的Indexer给人一种更'透彻'的感觉,集合类型就是集合类型,有自己专用但又最简洁的访问方式,而且同一类型可以有不同的索引访问方式."    --<设计模式_基于C#的工程化实现及扩展> 示例代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BangWorks.PractcalPattern.Concept.Inder

使用C#索引器

索引器在语法上方便您创建 客户端应用程序可将其作为数组访问的类.结构或接口.索引器经常是在主要用 于封装内部集合或数组的类型中实现的.例如,假定具有一个名为TempRecord的 类,此类表示在24小时内的10个不同时间记录的华氏度.此类包含一个表示温度 的float类型的名为"temps"的数组和表示记录温度的日期的 DateTime.通过在此类中实现一个索引器,客户端可以通过floattemp=tr[4]而 不是floattemp=tr.temps[4]语法访问TempRecord

《.NET程序员面试秘笈》----面试题13 举例说明索引器的作用

面试题13 举例说明索引器的作用 .NET程序员面试秘笈 [考点]索引器的理解,this在索引器中的作用. [出现频率] [解答] 索引器可以使客户程序很方便地访问类中的集合或数组,访问方法类似于通过索引访问数组,并且索引器向客户程序隐藏了内部的数据结构.索引器和属性同样使用get和set访问器读取.写入值,不过索引器的get和set访问器必须具有与索引器相同的形参表.但是属性可以为静态成员,而索引器必须为实例成员.索引器不支持类似于属性的自动实现的语法. 说明: 形参表即为声明索引器时接收的形

Asp.Net中索引器的用法分析_实用技巧

本文实例分析了Asp.Net中索引器的用法.分享给大家供大家参考.具体如下: 索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一.索引器特性 1.get 访问器返回值.set 访问器分配值. 2.this 关键字用于定义索引器. 3.value 关键字用于定义由 set 索引器分配的值. 4.索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制. 5.索引器可

话说索引器、foreach和集合初始化器

索引器 在使用集合类时我们经常用到索引器,例如List集合,我们使用int数字作为索引器参数,而字典集合我们可以使用任何对象作为索引器参数. 在我们自己定义的类中使用索引器的情况也许不多,现在举例详细说明一下.假设我们定义首都类( Capital ): public class Capital { /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> ///

一起谈.NET技术,话说索引器、foreach和集合初始化器

索引器 在使用集合类时我们经常用到索引器,例如List集合,我们使用int数字作为索引器参数,而字典集合我们可以使用任何对象作为索引器参数. 在我们自己定义的类中使用索引器的情况也许不多,现在举例详细说明一下.假设我们定义首都类( Capital ): public class Capital {/// <summary>/// 名称/// </summary> public string Name { get; set; } /// <summary>/// 定位//

NET索引器使用方法实例代码_实用技巧

索引器特性 1.get 访问器返回值.set 访问器分配值.2.this 关键字用于定义索引器.3.value 关键字用于定义由 set 索引器分配的值.4.索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制.5.索引器可被重载.6.索引器可以有多个形参,例如当访问二维数组时.7.索引器使得对象可按照与数组相似的方法进行索引. 代码示例 复制代码 代码如下: class SampleCollection<T>{    private T[] arr = new T[100];   

无法显式调用运算符或访问器 无法对属性或索引器赋值

问题描述 无法显式调用运算符或访问器 无法对属性或索引器赋值 困扰了好久了.c#反汇编回来的程序报了2个错误, this.msc.add_Error(new DScriptControlSource_ErrorEventHandler(OnError)); this.msc.add_Timeout(new DScriptControlSource_TimeoutEventHandler(OnTimeout)); 提示:"MSScriptControl.DScriptControlSource_E

谢谢-C#中索引器用字符串访问离散字段运行报错

问题描述 C#中索引器用字符串访问离散字段运行报错 源代码: namespace Discrete_field { class Program { static void Main(string[] args) { PhoneBook phonebook = new PhoneBook("王小波"); phonebook["Officephone"] = "11414441"; phonebook["MOBILEphone"]