很多人对利用photoshop(ps)将图片进行背景融入很好奇,很想尝试一下去不知道具体的操作步骤: 一、首先对于需要的背景图进行载入,然后可以通过魔棒工具进行抠图,此外还可以通过......
2023-09-15 212 photoshop教程
在 C# 中,多分支语句有两种,一种是 if elseif,另一种是 switch。在编程过程中,该用哪一种,应该根据具体情况和程序的执行效率决定。本文将探讨 switch 和 if elseif 倒底哪个效率高,下面是具体分析。
先看两种语句实现的代码:
//页面初始化
protected void Page_Load(object sender, EventArgs e)
{
If_Elseif(3);
Switch_Case(3);
}
//测试 if elseif
public string If_Elseif(int n)
{
string returnValue = "亮术网";
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 10000000; i++)
{
if (n == 1)
returnValue = "网页打不开";
else if (n == 2)
returnValue = "网页打开慢";
else if (n == 3)
returnValue = "网页显示不正常";
else if (n == 4)
returnValue = "网页显示乱码";
else if (n == 5)
returnValue = "Ie网页打不开";
else if (n == 6)
returnValue = "Chrome网页打不开";
}
sw.Stop();
lblRunTime.Text = " If_Elseif: " + sw.ElapsedMilliseconds;//label 标签
return returnValue;
}
//测试 Switch case
public string Switch_Case(int n)
{
string returnValue = "亮术网";
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 10000000; i++)
{
switch (n)
{
case 1:
returnValue = "网页打不开";
break;
case 2:
returnValue = "网页打开慢";
break;
case 3:
returnValue = "网页显示不正常";
break;
case 4:
returnValue = "网页显示乱码";
break;
case 5:
returnValue = "Ie网页打不开";
break;
case 6:
returnValue = "Chrome网页打不开";
break;
default:
break;
}
}
sw.Stop();
lblRunTime.Text += "ms Switch_Case: " + sw.ElapsedMilliseconds + "ms";
return returnValue;
}
运行结果:
If_Elseif: 162ms Switch_Case: 71ms
从运行结果可以看出,if elseif 用的时间比 Switch 多出91ms,程序循环了10000000次。如果循环次数继续增加,Switch 的效率更为明显,可见 Switch 的效率比 if> elseif 要高。
switch 之所以快,是因为编译后 switc 增加了一个索引跳转,而 if ... elseif 没有增加索引跳转。看反编译后的 ildasm 代码,可以发现 Switch_Case 方法中增加了下面这一句:
switch (IL_003f, IL_0047, IL_004f, IL_0057, IL_005f, IL_0067)
正是它实现了一个 jump table。
标签: C#多分支效率比较
相关文章
很多人对利用photoshop(ps)将图片进行背景融入很好奇,很想尝试一下去不知道具体的操作步骤: 一、首先对于需要的背景图进行载入,然后可以通过魔棒工具进行抠图,此外还可以通过......
2023-09-15 212 photoshop教程
一个超市、一个化妆品店、手机店凡是涉及采购销售的都要有一套进销存管理系统。那么这套进销存系统是怎么采购进货的呢?本期以智讯云进销存软件为例讲下。 下载最新版智讯云进......
2016-08-31 200 智讯云进销存
我们是不是经常遇到这样的情况,打开一个图纸文件,发现字体显示为很多的???这肯定不是我们需要的。 我们该如何解决呢?今天告诉大家一个简单的方法: 首先选中?的字体,......
2022-06-14 209 CAD图纸字体显示
浏览器IE自动跳转edge浏览器怎么回事?如何恢复?首先我们打开Edge浏览器点击右上角的三个圆点选择设置,在左边菜单中选择默认浏览器里面进行操作就可以了。 1、打开Edge浏览器,点......
2023-11-27 212 IE浏览器自动跳转edge浏览器
今天在玩魔兽争霸的时候,突然发现在游戏里无法使用tab键进行兵种切换,点击tab键会自动使用物品栏里的物品,很显然,tab键被改成物品栏的热键了,但是笔者平常在玩单机的时候并......
2017-07-06 229 魔兽争霸