- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
编译器编译一个foreach
循环成类似 for
的东西在 foreach
时循环与数组一起使用。编译器编译一个foreach
循环成类似 while
的东西在 foreach
时循环与 IEnumerable
一起使用或 IEnumerable<T>
.那么这是否意味着 foreach
纯粹是syntactic sugar
?或者它有什么复杂的东西吗?
CLR 是否知道 foreach
?有什么专门为foreach
设计的吗?在 MSIL 代码中?
最佳答案
它是纯粹的语法糖,没有它您也可以获得相同的行为,是的。许多其他事情是相同的...for
、while
等...错误引用阿基米德:“给我 if
和 goto
,我将移动代码...”
不,CLR 没有任何foreach
的概念。
关于c# - foreach 是纯粹的 “syntactic sugar” 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5816776/
为了说明我的观点,以下代码包含一个名为ColorValueChanger的方法,该方法使用this.passedIn作为可选参数。我以为这是为构造函数保留的? class Foo extends St
我正在查看 the docs并尝试了解运算符的实际工作方式。 The increment operator (++) increments its operand by 1. The incremen
我不知道这是否存在,但在我的项目中我有很多解析和验证。我以 5-10 多行 if(value) object.value = value 结尾。 我可以走 object.value = value |
C++14 泛型 lambda 是否为语言带来了真正的改进,还是它们是一种语法糖?是否有一些情况 [](auto param1, auto param2, /* ... */ auto paramN)
我正在遵循以下教程 https://learn.microsoft.com/en-us/azure/storage/common/storage-account-move?tabs=azure-por
我想在解析整个文件之前检查我的解释器是否使用 Python 3,否则会打印一条合适的错误消息。 在 this question ,有一个关于Python 2.4/2.5的答案。但是,当我尝试在 Pyt
编译器编译一个foreach循环成类似 for 的东西在 foreach 时循环与数组一起使用。编译器编译一个foreach循环成类似 while 的东西在 foreach 时循环与 IEnumera
我有以下电话 $.getJSON("/svrBooking/json/getEmployeesByManager",{ manager: "Paul Walker",
我的批处理文件程序总是在同一点崩溃。在它崩溃之前总是发生的是: ping -n 6 127.0.0.1 1>nul: 2>nul: -n cant be processed syntactically
我在尝试使用 Spring Boot 和 Thymeleaf 验证表单时遇到问题。只需使用给定字段注册用户即可。我使用的是多部分表单,因为该表单还上传图片,但我已经尝试在没有它的情况下使用该表单,但仍
@RequestMapping(value = "/invoice", method = RequestMethod.POST) public String submitInvoice(Htt
我目前正在学习 scp book 的练习 1.3。这是问题的描述: Define a procedure that takes three numbers as arguments and retur
在 Chrome 63.0 和 Firefox 58.0 中,向对象文字添加索引似乎可以防止对象被解析为对象。 {"a":"b"} 17:37:32.246 {a: "b"} {"a":"b"}["a
在其中一个操作中,我希望它发布内容。我发送以下值: permissionId = $('#permissionId').val(); var emails = $.
我正在开发一个使用 Spring 框架 3.1.0 版开发的 Web 应用程序。 我有一个 JSP 页面,其中包含一个允许用户从 SELECT 下拉列表框中选择国家/地区的表单。提交表单应该运行数据库
Google Java 风格指南中有一条规则“4.5.2 Indent continuation lines at least +4 spaces”,它说: In general, two conti
我试图理解为什么在将 block 作为参数时可以在类初始化中省略圆括号。 没有括号的例子: var block = CCActionCallBlock { () -> Void in NSLo
我主要使用 PHP 和 Python。 我一直在阅读 OO 编程中的接口(interface),但看不到使用它的优势。 多个对象可以实现相同的接口(interface),但多重继承不也能做到这一点吗?
我正在尝试访问可以使用 curl 对其进行测试的 Rest 资源 id 长度应为 11 个字符 如果 id 的长度小于 11 例如 '12345' https://somesite.com:7677/
像下面这样的表达式在 Idris 中是完全有效的: let x = Just 5 in let y = Just 6 in [|x / y|] 有人能写出如下表达式吗? let x = Just 5
我是一名优秀的程序员,十分优秀!