隐式类型如何使代码更清晰?

2023-11-22

在我正在读的一本书中,它指出隐式类型使以下代码比不使用时更清晰var关键词:

var words = new[] { "a", "b", null, "d" };

foreach (var item in words)
{
    Console.WriteLine(item);
}

在我看来,事实恰恰相反:如果你使用string相反,代码的读者会立即知道它是 foreach 循环中的字符串,而不必在定义变量的代码中查找。

隐式类型如何使上面的代码更清晰?

Addendum

这本书是C# 3.0 - 新事物。施内尔+康帕克特这是德语,实际文本是:

Das Schluesselwort var kann auch beim Durchlaufen von foreach-Schleifen verwendet werden, um somit den Code uebersichtlicher und einfacher zu gestalten. Typen 是一个复杂的艺术和设计程序。

这是我的翻译:

迭代 foreach 循环时也可以使用 var 关键字,从而使代码的创建更容易、更简单。特别是在使用复杂类型时,这可以防止编程错误。

好吧,现在仔细读一下,他实际上说var在 foreach 循环中使代码更容易创建但不一定更容易阅读。


就我个人而言,我同意你的观点。我不确定我会使用这个词是否更清晰,但在某些情况下var关键词肯定能成功cleaner, i.e:

var myClass = new ExtremelyLongClassNameIWouldntWantToTypeTwice();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

隐式类型如何使代码更清晰? 的相关文章

随机推荐

  • Android 检查是否设置了锁屏

    我需要检查锁屏是否有 Pin 码或更安全的东西 密码 指纹等 我能够检查是否有 PIN 密码或图案 KeyguardManager keyguardManager KeyguardManager context getSystemServi
  • 如何从命令行将 .mp4 视频与 .wav 音频以及 ffmpeg 中的偏移量结合起来?

    我有一个包含音频和视频的 mp4 格式的电视剪辑以及一个 WAV 音频评论轨道 我一直在尝试将它们组合在ffmpeg中 然后用flash播放器在线播放 只能采用h264格式 完成此任务的最佳 ffmpeg 命令是什么 我的输入是 MP4 视
  • 通过正则表达式和 classList 检查元素是否包含类

    我有一个简单的元素列表 如下所示 ul class items list li class item item 1 li li class item item 2 li li class item item 3 li li class it
  • WRITE_EXTERNAL_STORAGE 在棒棒糖上不起作用,即使它已在清单中设置

    我正在尝试将图像从应用程序本地数据文件夹保存到外部存储 我的清单包含以下内容 在清单的应用程序标签之前
  • 如何在Python API中使用plotly在x轴范围中位位置绘制垂直线?

    我正在尝试绘制一条动态定位的垂直线 以便在发生过滤时 该线会相应移动 例如 使用下面的代码 我可以在 25K 处绘制一条固定垂直线 该线以完整数据集作为中位数 但是当数据仅过滤为 美洲 时 因为 x 轴范围现在为 45K 该线不再处于中间位
  • Long 的标量范围

    我是 Scala 语言的新手 我需要长类型的范围 我需要第 1 步中的 1 2 3 10000000 列表 如果我使用 Until to 则会因为使用 Long 而不是 Int 而收到错误 我尝试编写一个简单的函数 它需要一个开始 一个结束
  • Ruby on Rails。如何在 :belongs to 关系中使用 Active Record .build 方法?

    我一直无法找到有关 Rails 中 build 方法的任何文档 我目前使用的是 2 0 2 通过实验 您似乎可以使用 build 方法将记录添加到has many保存任一记录之前的关系 例如 class Dog lt ActiveRecor
  • SonarQube Java版本用于验证代码

    我如何知道哪个版本的 Java SonarQube 验证了代码 是JVM的版本吗 如果我的项目基于不同的版本怎么办 默认值为 1 5 要设置合适的版本 您需要设置sonar java source财产要告诉PMD您的源代码符合哪个版本的 J
  • Angular2 中的 Selects 事件

    拜托 你能帮我吗 这应该很容易 但我找不到解决方案 有一个带有两个选择的表单 当 select1改变时 select2需要根据 select1的值显示数据 例如 获取每个州的城市 有点儿 html
  • Swift - 将本地 CSS 应用到 Web 视图

    我正在 Web 视图中加载 html 页面 并且想要应用本地 css 文件 我从服务器接收字符串中的 html 并且 css 将在我的应用程序中 例如这里我想显示 Hello 红色的 self articleView UIWebView f
  • 如何在 Rust 中使用极地日期?

    我正在使用 LazyCsvReader 读取文件 并且该文件包含日期列 LazyCsvReader 将日期读取为字符串 日期的格式为 m d Y 如何正确处理日期 有一个page对于这个 但它是针对 python 的 我试图阅读文档但无法弄
  • 从命令行启动 Python IDLE 来编辑脚本

    我尝试过这个命令的许多变体 idle py e filepath 但它只是像平常一样启动 IDLE 不会打开任何额外的窗口进行编辑 也不会抛出任何错误 那么我怎样才能通过命令行 甚至可能是Python模块 来完成打开IDLE 文件 gt 打
  • 如何使用 System.ComponentModel.DataAnnotations.AssociationAttribute

    前段时间我问过这样一个问题 每个 System ComponentModel DataAnnotations 属性的用途是什么 然而 我没能得到回复 这个问题有点宽泛 因为它要求提供有关每个数据注释属性的文档 此时此刻 我最感兴趣的是Ass
  • PHP MySQL INSERT 通过一次查询执行返回值

    在执行 INSERT 查询时 MySQL PHP 是否返回任何内容 这是我在课堂上的功能 function mysqlQuery query Gets the results from the query results mysql que
  • Symfony2 将值传递给集合表单类型

    我有以下实体关系 客户有一对多地址 一个地址有多对一的县和多对一的市 一个县有一对多的城市 所以 在我的 CustomerType 中 我有 public function buildForm FormBuilderInterface bu
  • Codeigniter 显示空白页,没有错误

    我有一个 codeigniter 应用程序 它在本地主机上运行良好 当我在服务器上上传相同内容时 它显示空白页面并且没有返回错误 我也用过大约 Stackoverflow 或其他网站上提到的所有方法 请指导我 UPDATES 我发现有 th
  • Stripe - PHP 致命错误:未找到“Stripe\Charge”类

    我一直在关注 Stripe 文档 但无法创建 费用 收费 php require var www stripe php 2 1 1 lib Stripe php Stripe Stripe setApiKey KEY HERE Stripe
  • 如何从 URL 获取 YouTube 视频 ID?

    我想要得到v id来自 YouTube 的 URL 使用 JavaScript 无 jQuery 纯 JavaScript YouTube URL 格式示例 http www youtube com watch v u8nQa1cJyX8
  • 在 iOS 中同时录制和播放音频

    我试图在录制时同时播放录制的内容 目前我正在使用AVAudioRecorder用于录音和AVAudioPlayer用于玩耍 当我尝试同时播放内容时 什么也没有播放 请找到我正在做的事情的伪代码 如果我在停止录制后做同样的事情 一切都会正常
  • 隐式类型如何使代码更清晰?

    在我正在读的一本书中 它指出隐式类型使以下代码比不使用时更清晰var关键词 var words new a b null d foreach var item in words Console WriteLine item 在我看来 事实恰