对象封装时,往往要考虑采用简洁的方式提供对类型内部成员的访问,作为 C#的一个语法特性——索引器非常适合完成该任务。
索引器(Indexer)可以让客户程序用近似数组的方式访问对象内部成员,将访问方法封装为索引器可以令客户代码更为简洁、直观。不过.NET 的索引器还提供基于联合键(Federated Key)的访问,利于对于一些结构比较复杂(尤其是那些同时受到多个纬度、多个属性制约而导致变化)的类型以简单的方式访问。
基于.NET 提供的托管委托机制,索引器设计上除了可以把键值作为参数外,还可以把检索过程中需要执行的规则和算法以委托的形式传递给索引器,在更大程度上提高了目标对象检索的灵活性,同时尽量保持目标类型检索接口的稳定性。
随着.NET 过渡到 3.5 版本,LINQ 作为一个具有普遍适应性的“实体 / 数据”技术,简化对各种异构数据的访问。索引器可以把 LINQ 作为具体实现技术,在提供简单访问接口的同时,提供对各种异构数据的统一检索。
了解更多的内容,请观看完整文章:通过索引器简化 C#类型信息访问
更多内容推荐
AWS Lambda 增加对 .NET 6 的支持
AWS Lambda 做了哪些针对性改进?
Mono 现状与未来: 从 Xamarin 到 WebAssembly、Blazor 及.NET 5
InfoQ采访了Mono项目的原作者Miguel de Icaza,讨论了Mono的当前状态及其在.NET生态系统中的未来。
29|接口:为什么 nil 接口不等于 nil?
为什么Go语言核心团队的技术负责人Russ Cox会说,“如果要从Go语言中挑选出一个特性放入其他语言,我会选择接口”呢?
2021-12-29
.net5 发布,.NET 会就此“支棱起来”吗?
在全面开源的趋势之下,微软可算是跟上了时代的脚步,作为微软最早迈向开源的重要象征之一,.NET5的发布对微软,以及.NET的使用者都意义非凡。未来,微软会将所有的.NET 组件整合到一个产品下,用户可以根据需求使用.NET的某个部分,不用专程下载安装所有内容
2020-11-26
27|应用内存管理:Linux 的应用与内存管理
Linux内核怎么来管理内存?Golang为什么能够实现高效、自动化地管理内存?通过这节课的学习你将找到答案,
2022-09-26
Entity Framework 7 支持批量操作和 JSON 列
EF7 Core可用于.NET 7和.NET 6。
微软正式发布 .NET 6 LTS 版本
号称是“迄今为止最快的 .NET”。
加餐|聊聊 Go 语言的指针
众所期待的指针加餐来了!
2022-02-26
表格控件 Spread.NET V14.0 发布:支持 .NET 5 和 .NET Core 3.1
Spread.NET 是一个功能、布局与 Excel 高度类似的 .NET表格控件,可全面满足 WinForm、ASP.NET、XAML 和 WinRT 等平台下表格数据处理、数据可视化开发需求。Spread.NET 支持 462 种 Excel 公式,提供可嵌入系统的类Excel设计器和全面开放的 API,为 .NET开发
2020-11-26
23. Spring Boot 访问 Sentinel
2023-02-15
EPPlus - 用于 .NET 的 Excel 电子表格
我们都会遇到需要用程序操作Excel电子表格的情形。在这里推荐一个.NET非常好用的包EPPlus。
2022-08-24
微软发布.NET 5.0 RC1,未来将只有一个.NET
微软发布了.NET 5.0 RC1,这是.NET 5在11月正式发布之前的第一个“go-live”版本。
.NET CORE 对象池简述
在 .NET 中有各种池子,例如数据库连接池和线程池,今天我们要说的这个池子是对象池。他是对象的容器,通过在容器中池化对象,根据需要重复使用这些出花对象来解决性能上的问题,以及解决性能上的需求。使用对象池简单的描述是:当需要一个对象是就从对象池中
2021-07-01
C#的未来:协变返回类型
一个常见的API设计问题是无法在重写方法时使用更具体的返回类型。提案49(现在是C# 9的候选)试图纠正这个问题。
2023 年深圳.NET 线下技术沙龙要开始了!名额有限,报名从速
MASA技术团队来深圳啦!我们联合了深圳.NET俱乐部,将在深圳市举办一场.NET线下技术沙龙,为.NET开发者创造一次交流学习的契机,我们邀请到的几位技术大咖,将会围绕各自的主题向大家分享他们的技术心得。本场沙龙名额有限,以报名优先为准。
2023-03-09
PowerShell 哈希表
PowerShell 哈希表是一种数据结构,用于存储一个或多个键/值对。也称为字典或关联数组。在 PowerShell中,每个哈希表都有一个哈希表对象。我们可以在 PowerShell 中使用 Hashtable 对象的属性和方法。 哈希表中的键和值也是.NET类型的对象。
2021-07-09
.NET6 新东西 -- 隐式命名空间引用
早在 .NET 6 Preview 7版本中微软就已经引入隐式命名空间引用。在.NET Preview 7这个版本中这个功能是默认开启的,如果需要禁用它的化就需要配置DisableImplicitNamespaceImports来禁用,但是到了.NET6 RC1版本的时候这个功能是禁用的,如果要使用就需要通过
2021-11-17
.NET 6 新东西 -- 高性能日志
一提到日志记录,大家就会想到log4net,如果提到.NET中的日志记录,一定会想到ILogger,这个ILogger是.NET中常用的提供的日志记录的方式,下面的代码是.NET Core WebAPI 项目初始化的代码,其中就使用了ILogger来提供日志记录:
2021-12-17
特别放送|回头看:如何更好地组织代码?
这节课,让我们重新来思考一下如何更好地组织代码。
2023-02-14
28|接口:接口即契约
在接下的三讲中,我们将系统学习Go语言的接口类型,围绕接口类型的基础知识与接口定义的惯例、接口类型的内部表示以及接口的应用模式这三方面内容进行讲解。在这一讲中,我们先来学习一下接口类型的基础知识部分
2021-12-24
暂无签名
推荐阅读
6. 千万学生管理系统存储架构设计
2023-09-26
3. 什么是面向复杂度架构设计
2023-09-25
7. 聚合
2023-09-28
2023 年成都.NET 线下技术沙龙来了!大咖分享,报名从速
2023-04-06
2023 年北京.NET 线下技术沙龙圆满落幕!
2023-05-23
.NET 的基元类型包括哪些?Unmanaged 和 Blittable 类型又是什么?一文带你深度解析
2023-06-27
.NET 常见的 4 种加密算法
2023-09-18
电子书

大厂实战PPT下载
换一换 
汪源 博士 | 网易 副总裁,杭州研究院执行院长,互联网技术委员会主席,网易数帆总经理
林帆(金戟) | 阿里巴巴 云效研发平台高级技术专家
张建飞 | 华为 华为云计算服务产品部软件专家
评论