C#中的新样式

如今,流畅的API非常普遍.最近,我在几乎所有与我合作的系统中都能找到它们.大多数情况下,它们增强了可读性,但有时它们将我锁定在不灵活的规范中,使得理解它们构建的规范的运行时行为几乎是不可能的.关于如何创建一个良好的流畅API有共识吗?使用流畅的API表示结构或规范的最佳方法是什么?

我最近注意到NServiceBus配置类中的流畅API的这个新颖变体:

class EndpointConfig : IConfigureThisEndpoint,AsA_Server { }

它使用多个接口作为一种线性流畅的接口.我喜欢它,因为当我只是试图表示简单的要求时,它不会给我带来额外的代码和上下文的沉重负担.在简单的情况下,这是足够的.但我认为它不会扩展到复杂的规格.您如何看待这种接口的使用?

你在C#中使用了哪些其他新习语?你在哪里使用它们?他们的优势是什么?你不会在哪里使用它们?另外,你如何衡量你正在考虑使用的成语的优势?

解决方法

我过去常常在表示不同行为的方法上避免使用布尔参数,例如:我会接受

int Expensivecomputation(bool usediskCache)

并希望把它变成

int Expensivecomputation(CacheType.diskCache)

我最喜欢这个,因为当你调用Expensivecomputation(true)时,如果不了解Expensivecomputation的全部意义,那么真正意味着什么并不清楚,而Expensivecomputation(CacheType.diskCache)给你一个好主意.

但是,对于命名参数,我发现使用第一个参数通常是可以接受的,并且这样调用它:Expensivecomputation(usediskCache:true)所以这是我为自己发明的最近的成语.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...