澄海3c技巧:在 C# 3中编写流畅接口的技巧(fluent writing)

我在一些很好的技巧在 C # 中流畅的界面。我只是自己学习它,但渴望听到别人在我正在阅读的文章之外的想法。特别是我之后:

什么时候流利太多了?

有流利的图案吗?

什么是在 C # 中,使流畅的接口更流畅(例如扩展方法)

复杂的流畅界面还是流畅的?

重构以获得流畅的界面或重构现有的流畅界面

任何好的例子在那里,你有工作或可以推荐?

如果你可以发布一个提示或想法,或者每个帖子的任何内容。我也想看看他们是如何被投票的。

提前谢谢你。

27

作为流畅界面的消费者,我遇到的最大挑战是,它们中的大多数并不是真正的流畅界面-相反,它们实际上是我所说的“清晰界面”的实例。

流畅的界面意味着它的主要目标是使它更容易说话,而清晰的界面意味着它的主要目标是易于阅读。

Assert().That().This(actual).Is().Equal().To(expected).
    Except().If(x => x.GreaterThan(10));

...比实际编写代码更容易阅读!

18

关于你的第四点;

是的,我认为一个复杂的流畅界面仍然可以流畅。

我认为流畅的界面在某种程度上是一种妥协。(尽管是一个很好的选择!)已经有很多关于使用自然语言进行编程的研究,通常自然语言不足以精确地表达程序。

Fluent 接口的构造使它们像编程语言一样编写,只允许你用自然语言表达的一小部分,但它们读起来像自然语言。

例如,如果您查看犀牛嘲笑,则与普通库相比,编写部分变得复杂。由于界面流畅,我花了更长的时间来学习,但它使代码更容易阅读。因为程序通常只写一次,并且不止一次阅读,这是一个很好的权衡。

因此,为了证明我的观点。编写复杂但易于阅读的流畅界面仍然可以流畅。

11

当使用继承和流畅的接口时,你会碰到一块砖,因为使用多态方你的调用链,你绝对不想通过使用不需要的丑陋的铸造和偏执狂来使你的接口不流畅。

8

Moq 隐藏了未释放的方法,如 equals,ToString等,以使其流畅的界面更易于使用。

Hiding System Object是一篇解释这样做的好处的文章。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(887)
C++断点:断点如何在 C++代码中工作(breakpoint c++)
上一篇
C2dm函数:C2DM不稳定或某种限制 (unstableness)
下一篇

相关推荐

  • cshtml教程:C# Razor 语法教程

    示例示例cshtml教程cshtml是一种基于Razor语法的ASP.NET视图引擎,用于创建动态Web页面。它使用C#或Visual Basic代码和HTML标记来构建Web应用程序的用户界面。…

    2023-02-10 06:49:58
    0 59 77
  • C语言的开发环境:创建C#Winform开发和生产环境

    关于C语言的开发环境的问题,在winform development中经常遇到,我想知道为我的 C # winforms 项目正确创建开发和生产环境的最佳方法是什么。不幸的是没有开发环境。相反,每次我希望创建 Production 或 Development 构建时,我必须指定发布路径。此外,由于每个 prod 或 dev 构建使用不同的连接字符串,因此我必须进入代码并进行更改。…

    2023-12-29 06:38:01
    0 81 24
  • C#md5加密:加密和解密 md5(md5 decrypt php)

    关于C#md5加密的问题,在md5 decrypt php中经常遇到,我正在使用代码$enrypt=md5($pass)并将$encrypt插入数据库。我想找出一种解密它们的方法。我尝试使用解密软件,但它说哈希应该是 16 字节。有没有办法解密它或使其成为 16 字节的 md5 哈希?…

    2024-01-07 03:14:16
    0 82 17
  • Word添加底纹图案样式:c#InteropWord文档添加样式

    关于Word添加底纹图案样式的问题,在create new style in word中经常遇到,现在我正在为多个用户创建一个应用程序,如果他们有一个英文版本,我可以使用“Header 1”,但如果他们不这样做,风格是无法识别的。我想知道我应该做什么,我应该添加一个新的风格吗?我一直在研究这个,但我不知道如何。…

    2024-01-24 13:50:16
    0 76 27
  • Compare用法与搭配:“&”与“&&”的用法(c# & vs &&)

    关于Compare用法与搭配的问题,在c# & vs &&中经常遇到,我遇到了这个:…

    2024-02-09 14:42:55
    0 83 34
  • 贝加尔湖畔复音口琴c调简谱:C#Web应用程序调优:PerformWaitCallback

    关于贝加尔湖畔复音口琴c调简谱的问题,在c# tuning中经常遇到,我正在使用 dotTrace Performance 4.5 来分析.NET 3.5 C # Web 应用程序。当我记录一个“用户请求”(页面加载)时,我看到 11 个线程的时间大致相同,7644 毫秒。…

    2023-12-29 02:17:39
    0 62 18
  • C#访问数据库:从 C#访问旧版Visual FoxPro数据库

    关于C#访问数据库的问题,在vfp next login中经常遇到,我有一个遗留的 Visual FoxPro 数据库,我需要从中获取数据。我在数据库文件夹中有 DBC,DCT,DCX & amp;FPT 文件。…

    2023-10-26 14:36:14
    0 77 52
  • Mac用什么编程c语言:我可以在Mac上用C#编程吗(c# for mac)

    关于Mac用什么编程c语言的问题,在c# for mac中经常遇到,我想学习 Unity 的 C #,我的个人电脑是 MacBook Air。我可以在 Mac 上用 C # 编程吗?…

    2024-01-24 13:04:15
    0 15 92

发表评论

登录 后才能评论

评论列表(24条)