透过IL看C#:switch语句(转)】的更多相关文章

透过IL看C# switch语句(上) 摘要: switch语句是 C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码.本文介绍了当向 switch语句中传入不同类型的参数时,编译器为其生成的 IL代码.这一部分介绍的是,在 switch语句中使用整数类型和枚举类型的情况. switch语句是 C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码. switch语句可以具备多个分支,也就是说,根据参数的 N种取值,可以跳转到 N个代码段去运行.这不同于 if语句,一条单独的…
goto语句在C语言中实现的就是无条件跳转,第二章一上来就介绍goto语句就是要通过goto语句来更加清楚直观的了解控制结构. 我理解的goto语句其实跟switch语句有相似之处,都是进行跳转.不同的是goto语句是进行无条件的跳转,执行到这一句的时候直接就跳转了,而switch语句是要进行一个判断之后才能进行跳转.例如: 下面是用switch语句写的一个程序 #include <stdio.h> int main(void) { char score; scanf("%c&quo…
透过Boolean看Swift 一个简单的Bool类型内部就包含了许多Swift主要功能, 如何构建一个简单类型是有趣的演示. 本文将创建一个与Bool类型在设计与实现上非常相似的新MyBool类型.我们希望通过设计和实现一个简单的Swift类型能让你更好的理解Swift语言是如何工作的. enum MyBool { case myTrue, myFalse } 让我们从基本的定义开始. MyBool类型有两种不同状态, 用enum来实现 extension MyBool { init() {…
之前我们介绍了在switch语句中使用整数类型和枚举类型的情况.这一部分继续介绍使用string类型的情况.string类型是switch语句接受的唯一一种引用类型参数. 下面来看一段C#代码. 代码1 - 使用string类型参数的switch语句 代码1展示的方法中只有一个switch语句,它接收一个字符串类型的参数s,并根据6种不同的情况显示不同的文字.它将被编译器翻译成什么样子的代码呢?这个switch语句是否依然能利用IL中的switch指令呢? 答案马上揭晓.且看由代码1得到的IL,…
switch语句是C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码.switch语句可以具备多个分支,也就是说,根据参数的N种取值,可以跳转到N个代码段去运行.这不同于if语句,一条单独的if语句只具备两个分支(这是因为if语句的参数只能具备true或false两种取值),除非使用嵌套if语句. switch语句能够接受的参数是有限制的,简单来说,只能是整数类型.枚举或字符串.本文就从整数.枚举和字符串这三种类型的switch语句进行介绍. switch指令 在进入正题之前,先为大…
Switch语句的case穿透 一 switch语句几点说明: 1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的. 2.case后面表达式可以接受: 基本数据类型,byte,short,char,int.换句话说能自动类型自动提升为int的都可以接受; 引用数据类型可以接受枚举(JDK1.5),String字符串(JDK1.7) 3.default不是一定要放到最后,放到中间也不会先执行它,首先匹配case,匹配不到case才会执行default, 可以在任意位…
[前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能. 流程控制语句分类: 顺序结构 选择结构:if语句.switch语句 循环结构:while语句.for语句 一.顺序结构: 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的. 总的来说:写在前…
写在前面:  按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事,于是单独把整个宏的东西整理成笔记,贴出来,和学习contiki的伙伴分享. 在说这个宏之前,得先记下c 语言的switch()遭遇. switch()从表面上来看,或许应该是非常简单的问题--C语言的基本功吧.它的使用方式,按照常规来说,如下图所示: 好吧,那就贴一段常规的代码: int main…
------- android培训.java培训.期待与您交流! ---------- 1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else { 语句体n+1; } B:执行流程: 首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束. 如果是false,接着计算比较表达式2看其返回值是…
4.2.2  表达并列条件选择的switch语句:如果……如果……如果…… 在现实世界中,还有这样一类特殊的条件选择: 如果明天是晴天,我就穿T恤: 如果明天是阴天,我就穿衬衣: 如果明天是雨天,我就穿外套. 之所以说这是条件选择,是因为它根据不同的情况执行了不同的动作:而之所以说它特殊,是因为这些不同情况(晴天.阴天.雨天)属于同一条件(天气情况).只要是条件判断,我们就可以用if语句将其表达出来,利用前面介绍过的if…else if…并列条件选择语句,我们可以将这个看天穿衣的场景表达如下:…