微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)所以这是我为自己发明的最近的成语.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐