gpt4 book ai didi

基于 .NET 的类库 - 执行特定任务的多种方法 - 什么是顶级 X 与 Y 文章和书籍

转载 作者:行者123 更新时间:2023-12-04 23:11:11 25 4
gpt4 key购买 nike

很少有书籍和文章详细介绍 a) 为什么提供多种方法来完成特定场景中的特定任务,以及 b) 开发人员在选择方法时应考虑哪些因素。

我的具体例子是简单地打开一个文本文件(任何 IO 章节的经典第一部分)。大多数书籍/文章只是说“嘿,这是打开文本文件的方法:带有文件路径的 StreamReader。Tada 和结尾部分!”

有些人至少列出了一个事实,即有多个类允许您执行此操作,例如:

  • 文件类
  • 文件信息类
  • FileStream 类
  • StreamReader 类
  • 等等等等

  • 更少的人讨论还有更多的重载,因此您可以以多种不同的方式使用每个类。

    甚至更少的人尝试参与关于如何为手头的任务选择最佳方法的任何讨论。 (当然有些人会这样做,而且当有人发布有关“最佳”书籍的类似民意调查的问题时,这些通常会排在前三名。)

    这种缺乏讨论让我发疯。我觉得我应该扔硬币。

    这个问题的共同目的是:
  • 首先找出是否有人认为这是一个有值(value)的话题
  • 为人们提供机会列出任何专门参与此类讨论的有趣文章或书籍

  • 我把它变成了一个 wiki,因为其他类似的问题也被做成了 wiki。如果人们觉得这个问题没有值(value),我道歉并随时投票结束。

    另一个例子

    我目前正在阅读有关 BinaryWriter 和 BinaryReader 的信息。我使用谷歌搜索的最后 20 篇文章和至少 5 本书关于 O'Reilly Safari 向我展示了如何编写单个整数并将其读回。一对夫妇包括如何使用 WriteString 和 ReadString 的示例。正好 ONE 让我知道 WriteString() 和 ReadString() 使用特殊的编码含义,如果你执行 WriteString() 和 ReadChar() 你得到一个前缀。有很多方法可以使用这些类。为什么几乎没有文章讨论这个?

    一多

    我的意思的另一个例子是,当一本书或文章从 MSDN 逐字列出类(class)成员和描述时,没有添加任何值。我不需要类(class)成员列表,因为我可以从 MSDN 获得。从作者那里,我需要经验、现实世界的知识,即可以扩展我作为开发人员的东西。不是我可以在五秒钟内查到的东西。世界上所有的成员列表和简单的我不做任何有用的例子都不会真正帮助任何想要学习他们的东西的人。

    最后一个 - 我保证

    只是阅读有关 StringWriter 和 StringReader 的内容。一样。很多文章和书籍都给出了简单的我不做任何有用的例子。有些人至少会说一些模糊的东西,比如如果我想将字符写入底层缓冲区,我可能想使用 StringWriter。我怎么知道我是否想这样做?哪些现实世界场景需要它?我可以通宵继续。

    好吧,我撒谎了...

    This question有来自 Merhdad 和 jalf 的答案,它们都解释了如何在两种生成随机数的方法之间进行选择,并演示(我认为)我正在谈论的信息类型。 jalf 说,“在大多数情况下使用选项 A。但在这种特定情况下,当你试图实现结果 X 时,使用选项 B。顺便说一下,这将产生负面影响 M。”

    X vs Y 文章

    我发现我可以通过搜索 X vs Y 文章来获得我想要的东西,例如 this one讨论如何在 Directory 和 DirectoryInfo 类(以及 File 和 FileInfo 类)之间进行选择。

    所以现在这个问题是:

    你能列出任何有用的 X vs Y 文章吗?

    最佳答案

    在某些情况下,执行某些任务的重复方式是可用的,因为他们在后续版本中进一步抽象了它。想想我认为是在 .Net 2.0 中引入的 WebClient 类。它基本上包含了您过去必须使用多个不同类(HttpWebRequest、HttpWebResponse、StreamReader 等)执行的许多常见任务。如果您需要做一些不同的事情,并且为了向后兼容,旧类显然仍然存在,但是如果您需要做的只是从网络下载资源作为字符串,那么您就有了 WebClient.DownloadString。

    此外,您通常使用 .Net,因为您不会在 cpu 周期上分心,因此如果您不关心性能,那么代码量最少的解决方案是首选方法。如果您正在编写一个服务器任务,其中没有用户将“等待”进程,并且您需要打开一个文件并将其读入一个字符串,请使用静态方法,让您在一行中完成整个事情.

    关于基于 .NET 的类库 - 执行特定任务的多种方法 - 什么是顶级 X 与 Y 文章和书籍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668284/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com