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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
O
OpenAI News
TaoSecurity Blog
TaoSecurity Blog
Cloudbric
Cloudbric
Know Your Adversary
Know Your Adversary
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Privacy & Cybersecurity Law Blog
T
Threatpost
AWS News Blog
AWS News Blog
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
aimingoo的专栏
aimingoo的专栏
Cyberwarzone
Cyberwarzone
GbyAI
GbyAI
P
Proofpoint News Feed
S
Security @ Cisco Blogs
D
Docker
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
博客园 - 【当耐特】
月光博客
月光博客
罗磊的独立博客
G
Google Developers Blog
M
MIT News - Artificial intelligence
小众软件
小众软件
C
Check Point Blog
P
Proofpoint News Feed
H
Heimdal Security Blog
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
W
WeLiveSecurity
PCI Perspectives
PCI Perspectives
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security Affairs
Attack and Defense Labs
Attack and Defense Labs
S
Schneier on Security
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
H
Help Net Security
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
Hacker News: Ask HN
Hacker News: Ask HN
Project Zero
Project Zero

博客园 - skylai

mvc3 小技巧 WCF学习之旅(一)---Hello World. WCF Client configuration Jquery表单验证 Jquery的一些常用信息 二进制、SOAP的序列化及反序列化 简单的Attribute实现. 泛型之泛型约束 C#泛型之泛型委托 C#2.0泛型介绍之简单泛型类。 序列化之XML序列化(一) Vs2005的win form动态生成菜单 强制字符换行CSS版和C#版 js操作xml 读写XML文件 js的一些杂谈 一个button同时执行多个有返回值的函数的解决方法(return false; or return true;) DataGrid里应用radio单选按钮 限制字符输入(ASCII 码)
前两天刚看书看到的,来这里跟大家分享一下有关C#处理指令的问题
skylai · 2005-01-21 · via 博客园 - skylai

前两天刚看书看到的,来这里跟大家分享一下,

这些东东就是C# 预处理器的指令了,在我们编译的时候会很有用处.
在处理之前要先定义的一个符号,可以在后面根据条件进行编译,
#define
这便是定义指令.必须在文件的开始处定义才行,不然是产生编译错误
如下定义

在定义以后我们就要来进行条件设置了,不然就达不到效果,呵呵,
注意: #define 定义的符号在后面的条件计算是为 true
如:


这样的结果是:Hello World first!在这里我们用到了#else这个跟条件语句里的else上一样的.
因为在开始的时候我们定义了first这个符号.从上面可以看出first是作为布尔变量来计算的.
现在我们将这段代码变换一下


这里看到的效果是:Hello World Yes all!
上面用到了#elif这相当于条件语句里的 else if
接下来我们看看#undef

现在看到的结果是:Hello World No all!
为什么,呵呵.是因为我们写了#undef取消了对Debug的定义,也就是说Debug已经不起作用了,
接下来该#warning上场了,故名思义,就是在编译的时候产生警告信息.


 

可以看到有Hello Word!
在下面的信息框里可以看到警告信息,编译是已经通过了,
下面继续看其它的指令:#error这是一个产生错误信息的指令如下

这里就看不到输入的字符了,不过可以在消息框里看到下面的信息

现在来看看#line指令


这样可以看到消息框有台下信息

#line的功能就显而易见了,他就是将默认的行号改成自己定义的行号.#line后面跟default则是将现在的行号恢复至原来的行号
但是它还有一个功能就是可以隐藏某行代码,这是SDK里对它的解释

下面的示例说明调试器如何忽略代码中的隐藏行。运行此示例时,它将显示三行文本。但是,当设置如示例所示的断点并按 F10 键逐句通过代码时,您将看到调试器忽略了隐藏行。另请注意,即使在隐藏行上设置断点,调试器仍会忽略它。]


这段代码在运行后虽然可以看到有三行输入,但是在调试的时候可以发现第二行根本就没有被调试到.
还有最后两个指令了,
#region
#endregion
这两个我想大家都非常熟悉了吧

现在看到的结果是:Hello World No all! 为什么,呵呵.是因为我们写了#undef取消了对Debug的定义,也就是说Debug已经不起作用了, 接下来该#warning上场了,故名思义,就是在编译的时候产生警告信息.   可以看到有Hello Word! 在下面的信息框里可以看到警告信息,编译是已经通过了, 下面继续看其它的指令:#error这是一个产生错误信息的指令如下
现在看到的结果是:Hello World No all! 为什么,呵呵.是因为我们写了#undef取消了对Debug的定义,也就是说Debug已经不起作用了, 接下来该#warning上场了,故名思义,就是在编译的时候产生警告信息.   可以看到有Hello Word! 在下面的信息框里可以看到警告信息,编译是已经通过了, 下面继续看其它的指令:#error这是一个产生错误信息的指令如下