惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
The Hacker News
The Hacker News
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
C
Cisco Blogs
AWS News Blog
AWS News Blog
T
Threatpost
L
LINUX DO - 热门话题
Simon Willison's Weblog
Simon Willison's Weblog
Scott Helme
Scott Helme
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tor Project blog
Cyberwarzone
Cyberwarzone
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
The Register - Security
The Register - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
罗磊的独立博客
云风的 BLOG
云风的 BLOG
V
Vulnerabilities – Threatpost
N
News | PayPal Newsroom
Project Zero
Project Zero
NISL@THU
NISL@THU
博客园_首页
MyScale Blog
MyScale Blog
V2EX - 技术
V2EX - 技术
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Full Disclosure
T
Troy Hunt's Blog
Recorded Future
Recorded Future
N
Netflix TechBlog - Medium
P
Privacy International News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
Arctic Wolf
C
Check Point Blog
W
WeLiveSecurity
Apple Machine Learning Research
Apple Machine Learning Research
C
CERT Recently Published Vulnerability Notes

博客园 - Sumtec

This is it GOODBYE 博客园(附最后一个QUIZ部分不完整答案) 答案of QUIZ:一个网页上面有多少个SilverLight4应用时会发生莫名其妙的崩溃?和什么有关? QUIZ:一个网页上面有多少个SilverLight4应用时会发生莫名其妙的崩溃?和什么有关? QUIZ:一个有8个属性的匿名类大约会占多大的文件大小? 答案 of QUIZ:mscorlib当中最占文件空间的类是哪一个类? QUIZ:mscorlib当中最占文件空间的类是哪一个类? 大家来C#微群吧! 优秀程序员的修炼 做一个有独立脑袋,愿意思考的人 如何不成为傻瓜 世界主要是由傻瓜组成的 解决问题不是光凭感觉和Google的 在创业团队图什么 支付宝的神奇体验 关注的都来一下,谢谢 拆迁条例据说也要有变化了 5年又5个月了 谁知道C# 5.0都会有些什么?
很简单的问题
Sumtec · 2011-02-16 · via 博客园 - Sumtec

声明:切勿以此为笔试题。

我们很多时候都会激烈的讨论算法、数据结构、设计模式、N层架构、某某框架、系统架构,可是真的在实战当中,才会发现原来有些很简单的问题我们会不知道答案。比如说:

        private static void DoWhileContinueTest()
        {
            
int i = 0;
            
do
            {
                Console.WriteLine(i);
                i
++;
                
if (i < 3continue;
            }
            
while (false);
        }

上面的输出是什么呢?这个问题看起来好像很简单,continue不就是进入下一次循环嘛。可问题是,如何进入呢:是直接走到循环最上面的一行代码呢,还是走到循环条件的判断?for、foreach和while都是走到最上面一行代码,而最上面一行代码都存在或者隐含了循环条件的判断。do-while因为循环判断条件在最后,因此不可能同时符合这两个说法,那么到底哪一个说法才是真的呢?

这个问题Google之似乎是找不到答案的,反正我用关键字“do while continue”没有找到,在microsoft.com找也没有找到。MSDN对于continue的描述也只是很简单的说“continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代”,也没有do-while的continue示例。“一次迭代”这个说法包不包含“循环条件的判断”还真不是显而易见的:do-while的是先执行循环体后判断,如果认为这样算一次迭代,那么下一次迭代也应该认为是先执行循环体,然后再执行判断;如果认为每一次迭代都是先判断循环条件,后执行循环体的,那第一次显然不是这样;又或者可能认为一次迭代不包含循环条件判断,但根据微软的说法又和for、foreach和while等情况不匹配。

其实无论结果如何,MSDN上的说法肯定是不严谨的。好吧,我们忽略MSDN的问题,这个疑惑总归要解决的。结果如何,请君自己动手以便加深记忆。

可能有人着急想要知道答案,又或者手头没有开发工具,好吧,我把答案贴出来。

答案是输出:
0

而不是:

0
1
2

也就是说,continue的准确含义是:
立即跳过后面的语句,直达循环条件判断处。
或者说是:立即执行条件判断,如果条件判断成立,则进入下一次迭代,否则跳出循环体。

再比如:

代码

        private static void DynamicTest()
        {
            dynamic t 
= new Host.TestPoint();
            t.Test();
        }
public class Host
        {
            
private interface IFace
            {
                
void Test();
            }
public class TestPoint : IFace
            {
                
void IFace.Test()
                {
                    Console.WriteLine(
"OK");
                }
            }
        }

我们知道dynamic是4.0的新特性,是编译器的语法糖。实际上dynamic类型对象在IL里面就是一个object,对其的访问一般来讲就是通过反射来进行调用。(当然,可以通过别的方式来自己扩展,此处忽略。)问题是,这个反射的过程会考虑上面的接口吗?假如不考虑那一定会出错。可是dynamic本身要解决的其中一个问题,是简化ActiveX调用。然而我在实际的使用过程中发现有一个.NET的COM对象上面显式的实现了一个COM接口,也就是说这不是一个Native的COM对象。此时如果不找其中的接口就会导致调用失败,大家猜结果会如何?

可能有人着急想要知道答案,又或者手头没有开发工具,好吧,我把答案贴出来。

答案是抛出了异常,也就是说不考虑其(隐式)实现的接口。

有的时候一些简单的问题,也还是挺有趣的。