﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-倚栏望海集</title><link>http://www.cnblogs.com/1landonsea/</link><description>知其然, 知其所以然, 求其所源, 后知其所踪，为善</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 03:47:16 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 03:47:16 GMT</pubDate><ttl>60</ttl><item><title>校验从Outlook2007/2010beta发出的邮件（VS2010beta2， dot Net 3.5 &amp;amp; dot Net 4.0）</title><link>http://www.cnblogs.com/1landonsea/archive/2009/11/01/MailReminderForOutlook2007and2010.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Sun, 01 Nov 2009 10:43:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2009/11/01/MailReminderForOutlook2007and2010.html</guid><description><![CDATA[<p>阅读: 42 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2009-11-01 18:43 <a href="http://www.cnblogs.com/1landonsea/archive/2009/11/01/MailReminderForOutlook2007and2010.html" target="_blank">原文链接</a></p><p>[版权所有，转载请告知，并保存原作者名及文章在博客园的链接]</p>
<p><strong style="font-size: 10pt">原因</strong></p>
<p>最近收发的邮件越来越敏感。虽然自己小心翼翼但是有时候难免会发错，不过好记性不如烂笔头。决定花点时间研究一下如何在Outlook发邮件之前做一些必要的校验。要检验的是两个问题：</p>
<p>1. 我的工作环境是公司有自己的邮件系统，客户有另外一个邮件系统。因为我们在工作中和客户的系统是紧密相联的，部门中包括VP都有客户给的邮箱。而且，客户的邮件系统和Outlook结合的更好。所以，往往为了省事，大部分员工优先使用客户邮箱沟通所有的事情。但是，有些内容会涉及到本公司内部的信息，这是不应该使用客户邮箱来沟通的。</p>
<p>2. 发工作邮件没有标题是很糟糕的。虽然我极少犯此错误（印象中没有试过），但是犯错一次可能会有严重的不良影响。</p>
<p><strong>工具</strong></p>
<p>VS2010beta2，Outlook 2007/2010beta，VSTO 40，.Net Framework 3.5/4.0 beta2</p>
<p>VS2010beta2已经完成所有的功能开发，剩下的工作只是性能调优。所以，生成的代码应该可以无缝地RTM中继续使用。虽然不知道 .Net Framework 4.0什么时候发布，但VS2010是可以创建以前版本的工程文件。所以，为了使用者不需要安装临时的 .Net 4.0 beta，可以用 .Net 3.5配合 VSTO40创建功能。用户可以减少安装负担。</p>
<p>VSTO 40是随VS2010发布的针对Office的interop组件。</p>
<p><strong>实现</strong></p>
<p>其实没有什么技术含量。虽然从来没有使用过VSTO，网上的资料也不是很全，但2个小时基本上调试完成。共享出来的原因也就是为了减少大家搜索的时间而已。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_184217" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_184217').style.display='none'; document.getElementById('Code_Open_Image_184217').style.display='inline'; document.getElementById('Code_Open_Text_184217').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_184217" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_184217').style.display='none'; getElementById('Code_Closed_Image_184217').style.display='inline'; getElementById('Code_Closed_Text_184217').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span id="Code_Closed_Text_184217" class="cnblogs_code_Collapse">ThisAddin.cs</span><span style="display: none" id="Code_Open_Text_184217"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;&nbsp;1</span><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br /></span><span style="color: #008080">&nbsp;&nbsp;2</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections.Generic;<br /></span><span style="color: #008080">&nbsp;&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections;<br /></span><span style="color: #008080">&nbsp;&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Linq;<br /></span><span style="color: #008080">&nbsp;&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Text;<br /></span><span style="color: #008080">&nbsp;&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.IO;<br /></span><span style="color: #008080">&nbsp;&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Xml.Linq;<br /></span><span style="color: #008080">&nbsp;&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Xml;<br /></span><span style="color: #008080">&nbsp;&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;Outlook&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Microsoft.Office.Interop.Outlook;<br /></span><span style="color: #008080">&nbsp;10</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;Office&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Microsoft.Office.Core;<br /></span><span style="color: #008080">&nbsp;11</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Windows.Forms;<br /></span><span style="color: #008080">&nbsp;12</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Diagnostics;<br /></span><span style="color: #008080">&nbsp;13</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><br /></span><span style="color: #008080">&nbsp;14</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;MailReminderForOutlook20072010N35<br /></span><span style="color: #008080">&nbsp;15</span><span style="color: #000000"><img id="Codehighlighter1_357_7020_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_357_7020_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_357_7020_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_357_7020_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_357_7020_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_357_7020_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_357_7020_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_357_7020_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_357_7020_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_357_7020_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;16</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">partial</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;ThisAddIn<br /></span><span style="color: #008080">&nbsp;17</span><span style="color: #000000"><img id="Codehighlighter1_398_7018_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_398_7018_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_398_7018_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_398_7018_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_398_7018_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_398_7018_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_398_7018_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_398_7018_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_398_7018_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_398_7018_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;18</span><span style="color: #000000"><img id="Codehighlighter1_408_843_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_408_843_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_408_843_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_408_843_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_408_843_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_408_843_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_408_843_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_408_843_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_408_843_Closed_Text">/**/</span><span id="Codehighlighter1_408_843_Open_Text"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;19</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;key&nbsp;is&nbsp;composed&nbsp;by&nbsp;sender&nbsp;domain&nbsp;and&nbsp;receiver&nbsp;domain;<br /></span><span style="color: #008080">&nbsp;20</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;val&nbsp;is&nbsp;exception&nbsp;list,&nbsp;there&nbsp;is&nbsp;a&nbsp;pair&nbsp;of&nbsp;seperators&nbsp;to&nbsp;wrap&nbsp;the&nbsp;exceptional&nbsp;address.<br /></span><span style="color: #008080">&nbsp;21</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;That&nbsp;is,&nbsp;the&nbsp;exception&nbsp;value&nbsp;should&nbsp;start&nbsp;with&nbsp;the&nbsp;seperator&nbsp;and&nbsp;end&nbsp;with&nbsp;the&nbsp;seperator.<br /></span><span style="color: #008080">&nbsp;22</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;For&nbsp;example:&nbsp;1.&nbsp;"!#~[alias@domain.com]!#~"<br /></span><span style="color: #008080">&nbsp;23</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;"!#~[alias1@domain.com]!#~[alias2@domain.com]!#~"<br /></span><span style="color: #008080">&nbsp;24</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"></span></span><br /><span style="color: #008080">&nbsp;25</span><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;SortedList</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">string</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;_violations&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;26</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SortedList</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">string</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&gt;</span><span style="color: #000000">(</span><span style="color: #800080">2</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;27</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">readonly</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;SPT&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">!#~</span><span style="color: #800000">"</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;28</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">readonly</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;SETTING_XML<br /></span><span style="color: #008080">&nbsp;29</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">MailReminderForOutlook.xml</span><span style="color: #800000">"</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;30</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">readonly</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;docFolder&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;31</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);<br /></span><span style="color: #008080">&nbsp;32</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">readonly</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;xmlFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;33</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Path.Combine(docFolder,&nbsp;SETTING_XML);<br /></span><span style="color: #008080">&nbsp;34</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">readonly</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;NODE_CONFIG&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">configuration</span><span style="color: #800000">"</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;35</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">readonly</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;NODE_VIOLATIONS&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">violations</span><span style="color: #800000">"</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;36</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">&nbsp;37</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;LoadConfiguraton()<br /></span><span style="color: #008080">&nbsp;38</span><span style="color: #000000"><img id="Codehighlighter1_1519_3027_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1519_3027_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1519_3027_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1519_3027_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1519_3027_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1519_3027_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1519_3027_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1519_3027_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1519_3027_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1519_3027_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;39</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(File.Exists(xmlFile))<br /></span><span style="color: #008080">&nbsp;40</span><span style="color: #000000"><img id="Codehighlighter1_1571_2085_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1571_2085_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1571_2085_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1571_2085_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1571_2085_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1571_2085_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1571_2085_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1571_2085_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1571_2085_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1571_2085_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;41</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlDocument&nbsp;doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlDocument();<br /></span><span style="color: #008080">&nbsp;42</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.Load(xmlFile);<br /></span><span style="color: #008080">&nbsp;43</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlNodeList&nbsp;list&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;44</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.SelectSingleNode(<br /></span><span style="color: #008080">&nbsp;45</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NODE_CONFIG&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">/</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;NODE_VIOLATIONS).ChildNodes;<br /></span><span style="color: #008080">&nbsp;46</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;list.Count;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">i)<br /></span><span style="color: #008080">&nbsp;47</span><span style="color: #000000"><img id="Codehighlighter1_1880_2071_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1880_2071_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1880_2071_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1880_2071_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1880_2071_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1880_2071_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1880_2071_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1880_2071_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1880_2071_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1880_2071_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;48</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_violations.Add(<br /></span><span style="color: #008080">&nbsp;49</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[i].Name.ToLower(),<br /></span><span style="color: #008080">&nbsp;50</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[i].InnerText&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;String.Empty&nbsp;:&nbsp;list[i].InnerText);<br /></span><span style="color: #008080">&nbsp;51</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;52</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;53</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;54</span><span style="color: #000000"><img style="display: inline" id="Codehighlighter1_2115_3017_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2115_3017_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2115_3017_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2115_3017_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_2115_3017_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2115_3017_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2115_3017_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2115_3017_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2115_3017_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span style="display: inline" id="Codehighlighter1_2115_3017_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;55</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_violations.Add(</span><span style="color: #800000">"</span><span style="color: #800000">domain1.comdomain2.com</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">!#~sample@domain2.com!#~</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;56</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_violations.Add(</span><span style="color: #800000">"</span><span style="color: #800000">domain2.comdomain1.com</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">!#~sample@domain1.com!#~</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;57</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlDocument&nbsp;doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlDocument();<br /></span><span style="color: #008080">&nbsp;58</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlNode&nbsp;baseNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(XmlNode)doc.CreateElement(NODE_CONFIG);<br /></span><span style="color: #008080">&nbsp;59</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.AppendChild(baseNode);<br /></span><span style="color: #008080">&nbsp;60</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlNode&nbsp;violationNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;61</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(XmlNode)doc.CreateElement(NODE_VIOLATIONS);<br /></span><span style="color: #008080">&nbsp;62</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baseNode.AppendChild(violationNode);<br /></span><span style="color: #008080">&nbsp;63</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlElement&nbsp;first&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;64</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.CreateElement(</span><span style="color: #800000">"</span><span style="color: #800000">domain1.comdomain2.com</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;65</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlElement&nbsp;second&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;66</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.CreateElement(</span><span style="color: #800000">"</span><span style="color: #800000">domain2.comdomain1.com</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;67</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;violationNode.AppendChild((XmlNode)first);<br /></span><span style="color: #008080">&nbsp;68</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;violationNode.AppendChild((XmlNode)second);<br /></span><span style="color: #008080">&nbsp;69</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.Save(xmlFile);<br /></span><span style="color: #008080">&nbsp;70</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;71</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;72</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;73</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">&nbsp;74</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;ThisAddIn_Startup(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br /></span><span style="color: #008080">&nbsp;75</span><span style="color: #000000"><img id="Codehighlighter1_3111_3467_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3111_3467_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_3111_3467_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_3111_3467_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3111_3467_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3111_3467_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_3111_3467_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_3111_3467_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3111_3467_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3111_3467_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;76</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;77</span><span style="color: #000000"><img id="Codehighlighter1_3141_3363_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3141_3363_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_3141_3363_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_3141_3363_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3141_3363_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3141_3363_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_3141_3363_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_3141_3363_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3141_3363_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3141_3363_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;78</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoadConfiguraton();<br /></span><span style="color: #008080">&nbsp;79</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.Application.ItemSend&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;80</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Outlook.ApplicationEvents_11_ItemSendEventHandler(<br /></span><span style="color: #008080">&nbsp;81</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application_ItemSend);<br /></span><span style="color: #008080">&nbsp;82</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;83</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;exp)<br /></span><span style="color: #008080">&nbsp;84</span><span style="color: #000000"><img id="Codehighlighter1_3410_3457_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3410_3457_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_3410_3457_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_3410_3457_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3410_3457_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3410_3457_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_3410_3457_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_3410_3457_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3410_3457_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3410_3457_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;85</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowError(exp);<br /></span><span style="color: #008080">&nbsp;86</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;87</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;88</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">&nbsp;89</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;ViolateVITSensitive(Outlook.MailItem&nbsp;item,&nbsp;StringBuilder&nbsp;msg)<br /></span><span style="color: #008080">&nbsp;90</span><span style="color: #000000"><img id="Codehighlighter1_3560_4717_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3560_4717_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_3560_4717_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_3560_4717_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3560_4717_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3560_4717_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_3560_4717_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_3560_4717_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3560_4717_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3560_4717_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;91</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;violated&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;92</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sender&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;item.SendUsingAccount.SmtpAddress;<br /></span><span style="color: #008080">&nbsp;93</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;senderDomain&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;94</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sender.Substring(sender.IndexOf(</span><span style="color: #800000">"</span><span style="color: #800000">@</span><span style="color: #800000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">).ToLower();<br /></span><span style="color: #008080">&nbsp;95</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">&nbsp;96</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;tip&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(</span><span style="color: #800080">64</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;97</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(Outlook.Recipient&nbsp;rec&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;item.Recipients)<br /></span><span style="color: #008080">&nbsp;98</span><span style="color: #000000"><img id="Codehighlighter1_3894_4495_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3894_4495_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_3894_4495_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_3894_4495_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_3894_4495_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3894_4495_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_3894_4495_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_3894_4495_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_3894_4495_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_3894_4495_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;99</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;receiverDomain&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br /></span><span style="color: #008080">100</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rec.AddressEntry.Address.Substring(<br /></span><span style="color: #008080">101</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rec.Address.IndexOf(</span><span style="color: #800000">"</span><span style="color: #800000">@</span><span style="color: #800000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">).ToLower();<br /></span><span style="color: #008080">102</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;key&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;senderDomain&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;receiverDomain;<br /></span><span style="color: #008080">103</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_violations.ContainsKey(key))<br /></span><span style="color: #008080">104</span><span style="color: #000000"><img id="Codehighlighter1_4183_4481_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4183_4481_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_4183_4481_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_4183_4481_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_4183_4481_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4183_4481_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_4183_4481_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_4183_4481_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4183_4481_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4183_4481_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">105</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_violations[key].IndexOf(<br /></span><span style="color: #008080">106</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPT&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;rec.AddressEntry.Address.ToLower()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;SPT)&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)<br /></span><span style="color: #008080">107</span><span style="color: #000000"><img id="Codehighlighter1_4336_4463_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4336_4463_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_4336_4463_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_4336_4463_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_4336_4463_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4336_4463_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_4336_4463_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_4336_4463_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4336_4463_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4336_4463_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">108</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;violated&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">109</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tip.AppendFormat(</span><span style="color: #800000">"</span><span style="color: #800000">&nbsp;{0}</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;rec.Address);<br /></span><span style="color: #008080">110</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">111</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">112</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">113</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(violated)<br /></span><span style="color: #008080">114</span><span style="color: #000000"><img id="Codehighlighter1_4534_4707_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4534_4707_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_4534_4707_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_4534_4707_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_4534_4707_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4534_4707_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_4534_4707_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_4534_4707_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4534_4707_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4534_4707_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">115</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.AppendFormat(<br /></span><span style="color: #008080">116</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Your&nbsp;Address:{0}\r**These&nbsp;Addresses&nbsp;violate&nbsp;mail&nbsp;sensitive&nbsp;policy:\r{1}.</span><span style="color: #800000">"</span><span style="color: #000000">,<br /></span><span style="color: #008080">117</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sender,&nbsp;tip);<br /></span><span style="color: #008080">118</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">119</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">120</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">121</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;IsWithoutTitle(Outlook.MailItem&nbsp;item,&nbsp;StringBuilder&nbsp;msg)<br /></span><span style="color: #008080">122</span><span style="color: #000000"><img id="Codehighlighter1_4805_5068_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4805_5068_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_4805_5068_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_4805_5068_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_4805_5068_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4805_5068_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_4805_5068_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_4805_5068_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4805_5068_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4805_5068_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">123</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;item.Subject&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;item.Subject.Length&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">)<br /></span><span style="color: #008080">124</span><span style="color: #000000"><img id="Codehighlighter1_4884_5058_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4884_5058_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_4884_5058_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_4884_5058_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_4884_5058_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_4884_5058_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_4884_5058_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_4884_5058_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4884_5058_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4884_5058_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">125</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.AppendFormat(<br /></span><span style="color: #008080">126</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">{0}**There&nbsp;is&nbsp;no&nbsp;title&nbsp;of&nbsp;this&nbsp;thread!</span><span style="color: #800000">"</span><span style="color: #000000">,<br /></span><span style="color: #008080">127</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.Length&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">\r\r</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;:&nbsp;String.Empty);<br /></span><span style="color: #008080">128</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">129</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">130</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">131</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Application_ItemSend(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;Item,&nbsp;</span><span style="color: #0000ff">ref</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Cancel)<br /></span><span style="color: #008080">132</span><span style="color: #000000"><img id="Codehighlighter1_5142_6060_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5142_6060_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_5142_6060_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_5142_6060_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_5142_6060_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5142_6060_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_5142_6060_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_5142_6060_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_5142_6060_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_5142_6060_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">133</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br /></span><span style="color: #008080">134</span><span style="color: #000000"><img id="Codehighlighter1_5172_5956_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5172_5956_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_5172_5956_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_5172_5956_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_5172_5956_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5172_5956_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_5172_5956_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_5172_5956_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_5172_5956_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_5172_5956_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">135</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">136</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Outlook.MailItem&nbsp;item&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Outlook.MailItem)Item;<br /></span><span style="color: #008080">137</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;msg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(</span><span style="color: #800080">256</span><span style="color: #000000">);<br /></span><span style="color: #008080">138</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ViolateVITSensitive(item,&nbsp;msg);<br /></span><span style="color: #008080">139</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsWithoutTitle(item,&nbsp;msg);<br /></span><span style="color: #008080">140</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(msg.Length&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)<br /></span><span style="color: #008080">141</span><span style="color: #000000"><img id="Codehighlighter1_5473_5942_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5473_5942_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_5473_5942_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_5473_5942_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_5473_5942_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5473_5942_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_5473_5942_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_5473_5942_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_5473_5942_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_5473_5942_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">142</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DialogResult&nbsp;res&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MessageBox.Show(<br /></span><span style="color: #008080">143</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.ToString(),<br /></span><span style="color: #008080">144</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Do&nbsp;you&nbsp;want&nbsp;to&nbsp;send&nbsp;this&nbsp;thread&nbsp;anyway?</span><span style="color: #800000">"</span><span style="color: #000000">,<br /></span><span style="color: #008080">145</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxButtons.YesNo,<br /></span><span style="color: #008080">146</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxIcon.Warning,<br /></span><span style="color: #008080">147</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxDefaultButton.Button2);<br /></span><span style="color: #008080">148</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(DialogResult.Yes&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;res)<br /></span><span style="color: #008080">149</span><span style="color: #000000"><img id="Codehighlighter1_5862_5924_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5862_5924_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_5862_5924_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_5862_5924_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_5862_5924_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_5862_5924_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_5862_5924_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_5862_5924_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_5862_5924_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_5862_5924_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">150</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">151</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">152</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">153</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">154</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;exp)<br /></span><span style="color: #008080">155</span><span style="color: #000000"><img id="Codehighlighter1_6003_6050_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6003_6050_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_6003_6050_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_6003_6050_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_6003_6050_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6003_6050_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_6003_6050_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_6003_6050_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_6003_6050_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_6003_6050_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">156</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowError(exp);<br /></span><span style="color: #008080">157</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">158</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">159</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">160</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;ShowError(Exception&nbsp;e)<br /></span><span style="color: #008080">161</span><span style="color: #000000"><img id="Codehighlighter1_6114_6473_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6114_6473_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_6114_6473_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_6114_6473_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_6114_6473_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6114_6473_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_6114_6473_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_6114_6473_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_6114_6473_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_6114_6473_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">162</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(<br /></span><span style="color: #008080">163</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String.Format(<br /></span><span style="color: #008080">164</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Click&nbsp;'ctrl+c'&nbsp;to&nbsp;copy&nbsp;this&nbsp;error&nbsp;and&nbsp;send&nbsp;to&nbsp;XXXX@domain1.com.\rError:{0}\rStack:{1}</span><span style="color: #800000">"</span><span style="color: #000000">,<br /></span><span style="color: #008080">165</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Message,&nbsp;e.StackTrace),<br /></span><span style="color: #008080">166</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Mail&nbsp;Warning&nbsp;Outlook&nbsp;Plug-in&nbsp;Error</span><span style="color: #800000">"</span><span style="color: #000000">,<br /></span><span style="color: #008080">167</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxButtons.OK,<br /></span><span style="color: #008080">168</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxIcon.Error);<br /></span><span style="color: #008080">169</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">170</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">171</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;ThisAddIn_Shutdown(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br /></span><span style="color: #008080">172</span><span style="color: #000000"><img id="Codehighlighter1_6558_6569_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6558_6569_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_6558_6569_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_6558_6569_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_6558_6569_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6558_6569_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_6558_6569_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_6558_6569_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_6558_6569_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_6558_6569_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">173</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">174</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">175</span><span style="color: #000000"><img id="Codehighlighter1_6579_7012_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6579_7012_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_6579_7012_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_6579_7012_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif"><img style="display: none" id="Codehighlighter1_6579_7012_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6579_7012_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_6579_7012_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_6579_7012_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_6579_7012_Closed_Text">VSTO&nbsp;generated&nbsp;code</span><span style="display: none" id="Codehighlighter1_6579_7012_Open_Text"><span style="color: #0000ff">#region</span><span style="color: #000000">&nbsp;VSTO&nbsp;generated&nbsp;code</span><span style="color: #000000"><br /></span><span style="color: #008080">176</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">177</span><span style="color: #000000"><img id="Codehighlighter1_6616_6780_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6616_6780_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_6616_6780_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_6616_6780_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_6616_6780_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6616_6780_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_6616_6780_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_6616_6780_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_6616_6780_Closed_Text">/**/</span><span id="Codehighlighter1_6616_6780_Open_Text"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br /></span><span style="color: #008080">178</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;Required&nbsp;method&nbsp;for&nbsp;Designer&nbsp;support&nbsp;-&nbsp;do&nbsp;not&nbsp;modify<br /></span><span style="color: #008080">179</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;the&nbsp;contents&nbsp;of&nbsp;this&nbsp;method&nbsp;with&nbsp;the&nbsp;code&nbsp;editor.<br /></span><span style="color: #008080">180</span><span style="color: #008000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"></span></span><br /><span style="color: #008080">181</span><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;InternalStartup()<br /></span><span style="color: #008080">182</span><span style="color: #000000"><img id="Codehighlighter1_6827_6984_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6827_6984_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_6827_6984_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_6827_6984_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_6827_6984_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_6827_6984_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_6827_6984_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_6827_6984_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_6827_6984_Closed_Text"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_6827_6984_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">183</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.Startup&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.EventHandler(ThisAddIn_Startup);<br /></span><span style="color: #008080">184</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.Shutdown&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;System.EventHandler(ThisAddIn_Shutdown);<br /></span><span style="color: #008080">185</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">186</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">187</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#endregion</span></span><span style="color: #000000"><br /></span><span style="color: #008080">188</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">189</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /></span><span style="color: #008080">190</span><span style="color: #000000"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span></span></div>
<p>&nbsp;</p>
<p>&nbsp;整个代码没什么神奇的地方。不再做详细的解释。这段代码也可以直接用在 .Net Framework 4.0的工程中。两者在本例并没有区别。</p>
<p>ViolateVITSensitive用来校验是否有违规的邮件地址。比如发件者的邮箱是<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#108;&#105;&#97;&#115;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#49;&#46;&#99;&#111;&#109;" target="_blank">alias@domain1.com</a>。那么就不允许出现XXX<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#88;&#88;&#88;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#50;&#46;&#99;&#111;&#109;" target="_blank">@domain2.com</a>&nbsp;的收件人。发现违规会弹出提示，用户可以取消或者强制发送。</p>
<p>代码有不少可以优化的地方，比如所有的校验函数都可以做成DI（IoC）的模式（不过暂时没有必要。而且，这样只会扰乱只关心怎么用VSTO的读者）。</p>
<p>XML部分可以用lambda，不过我对这种在大部分情况只提高书写效率，并不会提高执行效率和调试效率的东西不太感冒（也可能是个人偏见，呵呵）。</p>
<p>&nbsp;</p> <img src="http://www.cnblogs.com/1landonsea/aggbug/1594024.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2009/11/01/MailReminderForOutlook2007and2010.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2009/11/01/MailReminderForOutlook2007and2010.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>The implementation of IDisposable Pattern of System.Net.NetworkInformation.Ping may be wrong</title><link>http://www.cnblogs.com/1landonsea/archive/2009/10/23/1588404.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Thu, 22 Oct 2009 16:59:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2009/10/23/1588404.html</guid><description><![CDATA[<p>阅读: 1038 评论: 2 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2009-10-23 00:59 <a href="http://www.cnblogs.com/1landonsea/archive/2009/10/23/1588404.html" target="_blank">原文链接</a></p><p>Ping class as expected holds an unmanaged resource viewed&nbsp;via reflector. In most cases, as i know, the class implements an explicit IDisposable.Dispose method. And Ping does it the same way as others, like EventWaitHandle. But unlike EventWaitHandle, it also inherits Component, an implementation class, which implements an implicit Dispose from IDisposable. As an outsider, i am surprising to&nbsp;compose my code&nbsp;like this:<br />Ping p = new Ping();<br />//...<br />p.Dispose();<br />As the Component class follows standard IDisposable pattern. There is a protected virtual Dispose(bool) method inside it. An interesting observation is the Ping doesn't override that protected method and implment the explicit IDisposable.Dispose as follow:<br />//from reflector (.net 2.0)<br />void IDisposable.Dispose()<br />{<br />&nbsp; InternalDispose();<br />}<br /><br />The InternalDispose() just closes everything and returns.<br /><br />So if anyone acts like me, call Ping.Dispose() will get unexpected result. </p>
<p>I just got a reply from MSFT (Tratcher, a System.Net developer in Windows Core Networking)&nbsp;that "Your observations are correct.&nbsp; This has been fixed in .Net 4.0 Beta 2, which was released this week.&nbsp; Take a look and let us know what you think."</p>
<p>At last, I just got my beta 2 installed today. It looks pretty good. :)</p><img src="http://www.cnblogs.com/1landonsea/aggbug/1588404.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/1landonsea/archive/2009/10/23/1588404.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2009/10/23/1588404.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>淡</title><link>http://www.cnblogs.com/1landonsea/archive/2009/09/16/1567384.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Tue, 15 Sep 2009 16:22:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2009/09/16/1567384.html</guid><description><![CDATA[<p>阅读: 37 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2009-09-16 00:22 <a href="http://www.cnblogs.com/1landonsea/archive/2009/09/16/1567384.html" target="_blank">原文链接</a></p><h1><font style="font-size: 16px" face="黑体">
<p>云居虚境高 </p>
<p>线撒湖边钓 </p>
<p>蜓立杆头摇 </p>
<p>茶香径上草 </p>
<p>于 二零零九年 九月十六日 零时一分 </p></font></h1><img src="http://www.cnblogs.com/1landonsea/aggbug/1567384.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2009/09/16/1567384.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2009/09/16/1567384.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>老事重提--命名规范（Name Notation）</title><link>http://www.cnblogs.com/1landonsea/archive/2009/09/03/1559366.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Thu, 03 Sep 2009 02:50:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2009/09/03/1559366.html</guid><description><![CDATA[<p>阅读: 106 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2009-09-03 10:50 <a href="http://www.cnblogs.com/1landonsea/archive/2009/09/03/1559366.html" target="_blank">原文链接</a></p><style>
 v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style><style>
 <!-- /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Verdana; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1593833729 1073750107 16 0 415 0;} @font-face 	{font-family:微软雅黑; 	panose-1:2 11 5 3 2 2 4 2 2 4; 	mso-font-charset:134; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-2147483001 672087122 22 0 262175 0;} @font-face 	{font-family:Consolas; 	panose-1:2 11 6 9 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-520092929 1073806591 9 0 415 0;} @font-face 	{font-family:"\@微软雅黑"; 	panose-1:2 11 5 3 2 2 4 2 2 4; 	mso-font-charset:134; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-2147483001 672087122 22 0 262175 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-name:"Normal\,No Space"; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Consolas; 	mso-fareast-font-family:微软雅黑; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Consolas; 	mso-fareast-font-family:微软雅黑; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Consolas; 	mso-fareast-font-family:微软雅黑; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Consolas; 	mso-fareast-font-family:微软雅黑; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Consolas; 	mso-fareast-font-family:微软雅黑; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Verdana; 	mso-fareast-font-family:微软雅黑; 	mso-hansi-font-family:Verdana;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:851995068; 	mso-list-type:hybrid; 	mso-list-template-ids:-2102085428 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} @list l1 	{mso-list-id:1040208842; 	mso-list-type:hybrid; 	mso-list-template-ids:-1580197648 67698703 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --> </style>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">&#160;&#160;&#160;&#160;&#160;&#160; 如果读者已经加入某个软件公司开始编码，应该已经接触到贵公司的命名规范。一般规范都会解释怎么做，解释为什么的估计会比较少。在本节中笔者<strong>尽所能</strong>，去挖掘这些命名规范是什么，规范确立的缘由，并且从哪里来的。不过有的缘由已经失落难以寻找，有的可能没有多少理由。有错漏之处，请多多指点。</span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">&#160;&#160;&#160;&#160;&#160;&#160; 命名法中对</span>Windows<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">影响最深远的就是匈牙利命名法（</span>Hungarian Notation<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，</span>HN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">。参见中文维基百科的“匈牙利命名法”主题（</span>http://zh.wikipedia.org/wiki/<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">匈牙利命名法）或者英文主题“</span>Hungarian Notation<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”（</span>http://en.wikipedia.org/wiki/Hungarian_notation<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）），由</span>Charles Simonyi<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（</span>http://en.wikipedia.org/wiki/Charles_Simonyi<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）在微软的期间（</span>1981~2002<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）开始迅速推广的命名规则。因为这套规则前缀并不都是英文，其规则是“类型</span>+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">变量名”，类似于匈牙利人“姓氏</span>+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">人名”（和中国人一样），与一般欧洲人习惯（“变量名</span>+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">类型”）不同，</span>Charles<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">又是匈牙利人，所以称为匈牙利命名法。这个命名法又分为“</span>Systems Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”（系统匈牙利）和“</span>Apps Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”（应用匈牙利）。</span>Systems Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">基于变量的</span>Type<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（类型），而</span>Apps Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">基于</span>Purpose/intent<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（意图）。比如：</span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: green; font-size: 9pt">//Systems Hungarian<o:p></o:p></span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: #2b91af; font-size: 9pt">UInt32</span><span style="font-size: 9pt"> unIndex; <span>&#160; </span><span style="color: green">// or dwIndex. An index of UInt32 type<o:p></o:p></span></span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: blue; font-size: 9pt">LPWSTR</span><span style="font-size: 9pt"> lpwszName; <span style="color: green">// a long distance point widechar zero-terminated String<o:p></o:p></span></span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: green; font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// LPWSTR is a Windows C type, not existing in C#.<o:p></o:p></span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: green; font-size: 9pt"><o:p>&#160;</o:p></span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: green; font-size: 9pt">//Apps Hungarian<o:p></o:p></span></p>  <p style="margin-left: 0.2in" class="MsoNormal"><span style="line-height: 115%; color: #2b91af; font-size: 9pt">Int32</span><span style="line-height: 115%; font-size: 9pt"> arrIndex; <span>&#160; </span><span style="color: green">// An index of an array<o:p></o:p></span></span></p>  <p style="margin-left: 0.2in" class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">string</span><span style="line-height: 115%; font-size: 9pt"> szName;<o:p></o:p></span></p>  <p style="margin-left: 0.2in" class="MsoNormal"><span style="line-height: 115%; color: green; font-size: 9pt"><o:p>&#160;</o:p></span></p>  <p style="line-height: normal; margin-left: 0.2in" class="MsoNormal"><span style="color: green; font-size: 9pt">//Recommended as the alternate notation of Apps Hungarian<o:p></o:p></span></p>  <p style="margin-left: 0.2in" class="MsoNormal"><span style="line-height: 115%; color: #2b91af; font-size: 9pt">Int32</span><span style="line-height: 115%; font-size: 9pt"> indexOfArray;<o:p></o:p></span></p>  <p style="margin: 0in 0in 10pt 0.2in" class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">string</span><span style="line-height: 115%; font-size: 9pt"> nameString;<span style="color: green"> <span>&#160;</span>// or nameStr</span></span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">最后两个</span>indexOfArray<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">和</span>nameString<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">是现在不少人比较提倡的命名法，用来代替</span>Apps Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">。其它比较出名的前缀，如“</span>sz<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”，表示以空零结尾的字符串（“</span>sz<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”实际上是匈牙利字母表中的一个合体字母，例如，</span>szName<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，表示字符串</span>Name<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">。因为没有指明字符串是如何组成，这个是</span>Apps Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">。如果写成</span>lpcwszName<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，</span>lp<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">：长跳转指针，</span>c<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">：</span>const<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，</span>w<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">：宽字符，</span>sz<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">：空零结尾字符串，则是</span>Systems Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">），如全局变量用“</span>g_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”前缀，类成员变量用“</span>m_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”。这套命名规范已经被</span>.Net<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">摒弃（参见</span>MSDN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">上“</span>General Naming Conventions<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”主题），但在微软内外还有不少人用，而且还经常出现在</span>C#<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">的代码中（包括笔者）。所以，有必要拉出来讨论一下在</span>C#<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">的优缺点。</span></p>  <table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; margin-left: 5.4pt; border-top: medium none; border-right: medium none" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"><tbody>     <tr>       <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal">Hungarian Notation<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（</span>HN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: 1pt solid; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal">C#<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">上的代替方案</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">[<span lang="ZH-CN">优点</span>]</span></strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">通过肉眼就能分辨变量类型，而无需向上翻页去找变量的声明定义。</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">把鼠标放到变量上即可看到变量类型，而且在强类型语言中在变量加类型前缀显得冗余。</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">[<span lang="ZH-CN">优点</span>]</span></strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">多个语意类似的变量可以在一起使用，减少命名冲突。比如</span>UI<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">编程的时候，</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">TextBox<span lang="ZH-CN">（</span></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">输入框）为</span>txtUserName<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，</span>Label<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（提示框）为</span>lblUserName<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">。</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">笔者在</span>UI<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">编程的时候还是遵循这套规则。可以用“变量名</span>+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">控件名”的方式，如</span>userNameTextBox<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">。</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">[<span lang="ZH-CN">优点</span>]</span></strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">Apps Hungarian<span lang="ZH-CN">）</span></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">当作不恰当赋值的时候，可以肉眼判断。在</span>Joel Spolsky<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">的文章“</span>Making Wrong Code Look Wrong<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”（</span>http://www.joelonsoftware.com/articles/Wrong.html<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）有精辟的阐述。简要说明一下。假设有如下代码：</span></p>          <p class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">int</span><span style="line-height: 115%; font-size: 9pt"> hWindow = GetWindowWidth();<o:p></o:p></span></p>          <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">其中“</span><span>h</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”前缀表示“</span><span>height</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”。明显用肉眼就能看到这个赋值有问题，应该是：</span><span><o:p></o:p></span></p>          <p class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">int</span><span style="line-height: 115%; font-size: 9pt"> wWindow = GetWindowWidth();<o:p></o:p></span></p>          <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">或者</span><span><o:p></o:p></span></p>          <p class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">int</span><span style="line-height: 115%; font-size: 9pt"> hWindow = GetWindowHeigth();</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">按照</span>camelCasing<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（驼峰命名法），可以这样写：</span></p>          <p class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">int</span><span style="line-height: 115%; font-size: 9pt"> WidthOfWindow = GetWindowWidth();<o:p></o:p></span></p>          <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">或者</span><span><o:p></o:p></span></p>          <p class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">int</span><span style="line-height: 115%; font-size: 9pt"> windowWidth = GetWindowWidth();<o:p></o:p></span></p>          <p class="MsoNormal"><o:p>&#160;</o:p></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">[<span lang="ZH-CN">优点</span>]</span></strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;"> <span lang="ZH-CN">（特指</span>Systems Hungarian<span lang="ZH-CN">）代码量很大的情况下，（如</span>UI<span lang="ZH-CN">编程中）可以更容易找到所要变量。例如要找的变量的类型是</span>TextBox<span lang="ZH-CN">（输入框，缩写为</span>txt<span lang="ZH-CN">），但记不清楚变量名后缀是</span>UserName<span lang="ZH-CN">还是</span>User<span lang="ZH-CN">，可以敲</span>txt<span lang="ZH-CN">然后按“</span>ctrl+j<span lang="ZH-CN">”在代码提示中选择。</span><o:p></o:p></span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">这是笔者在</span>UI<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">编程中使用</span>HN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">的另外一个原因。</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">[<span lang="ZH-CN">缺点</span>]</span></strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">在泛型编程中是无法在编写代码的时候确定变量类型的。</span><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;"><o:p></o:p></span></strong></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">问题同样存在。</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 229.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="306">         <p class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">[<span lang="ZH-CN">缺点</span>]</span></strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（特指</span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;">Systems Hungarian<span lang="ZH-CN">）当变量类型改变的时候需要在变量出现过的地方逐个修改，特别是一些比较常用的变量名会让查找修改变得困难。</span><strong><o:p></o:p></strong></span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 202.5pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="270">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">问题同样存在。</span></p>       </td>     </tr>   </tbody></table>  <p style="margin-bottom: 10pt" class="MsoNormal"><o:p>&#160;</o:p></p>  <table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; margin-left: 18.9pt; border-top: medium none; border-right: medium none" class="MsoTableLightListAccent4" border="1" cellspacing="0" cellpadding="0"><tbody>     <tr>       <td style="border-bottom: medium none; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 405pt; padding-right: 5.4pt; background: #8064a2; border-top: 1pt solid; border-right: 1pt solid; padding-top: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial" valign="top" width="540">         <p style="margin: 2pt 0in" class="MsoNormal"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; color: white" lang="ZH-CN">匈牙利命名法（</span><span style="color: white">Hungarian Notation</span></strong><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; color: white" lang="ZH-CN">，</span><span style="color: white">HN</span></strong><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; color: white" lang="ZH-CN">）的历史故事</span><span style="color: white"><o:p></o:p></span></strong></p>       </td>     </tr>      <tr>       <td style="border-bottom: #8064a2 1pt solid; border-left: #8064a2 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 405pt; padding-right: 5.4pt; border-top: #8064a2 1pt solid; border-right: #8064a2 1pt solid; padding-top: 0in" valign="top" width="540">         <p style="margin-bottom: 10pt" class="MsoNormal"><span style="line-height: 115%; font-size: 10pt">&#160;&#160;&#160; Charles Simonyi</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">在微软内部推行的</span><span style="line-height: 115%; font-size: 10pt">HN</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">其实是</span><span style="line-height: 115%; font-size: 10pt">Apps Hungarian</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">，但是却被内部文档人员误传（参见</span><span style="line-height: 115%; font-size: 10pt">Larry Osterman</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">博客的文章“</span><span style="line-height: 115%; font-size: 10pt">Hugarian notation - it's my turn now :)</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">”（注：</span><span style="line-height: 115%; font-size: 10pt">Larry</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">的原文把</span><span style="line-height: 115%; font-size: 10pt">Hungarian</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">写成</span><span style="line-height: 115%; font-size: 10pt">Hugarian</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">），链接：</span><span style="line-height: 115%; font-size: 10pt">http://blogs.msdn.com/larryosterman/archive/2004/06/22/162629.aspx</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">。还有</span><span style="line-height: 115%; font-size: 10pt">Rick Schaut</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">的文章“</span><span style="line-height: 115%; font-size: 10pt">Hungarian Notation</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">”，链接：</span><span style="line-height: 115%; font-size: 10pt">http://blogs.msdn.com/rick_schaut/archive/2004/02/14/73108.aspx</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">），结果导致</span><span style="line-height: 115%; font-size: 10pt">Systems Hungarian</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">在内部泛滥。加上</span><span style="line-height: 115%; font-size: 10pt">Charles Petzold</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">曾经“大力”传播</span><span style="line-height: 115%; font-size: 10pt">Systems Hugarian</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">（参见</span><span style="line-height: 115%; font-size: 10pt">Charles Petzold</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">的文章“</span><span style="line-height: 115%; font-size: 10pt">The Demise of Hungarian Notation</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">”，链接：</span><span style="line-height: 115%; font-size: 10pt">http://www.charlespetzold.com/blog/2006/05/040939.html</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">），导致很多程序员错误的使用了很长一段时间。笔者倒是不反对</span><span style="line-height: 115%; font-size: 10pt">Apps Hungarian</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">，只要约定明晰，还是很好用。特别是在一个函数内出现多个语意相同的变量会显得更加简洁明了。比如在获取</span><span style="line-height: 115%; font-size: 10pt">Name</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">字符串变量的操作时可能会需要如下变量：</span><span style="line-height: 115%; font-size: 10pt">szName</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">（字符串</span><span style="line-height: 115%; font-size: 10pt">Name</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">），</span><span style="line-height: 115%; font-size: 10pt">iName</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">（</span><span style="line-height: 115%; font-size: 10pt">Name</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">字符串的</span><span style="line-height: 115%; font-size: 10pt">index</span><span style="line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; font-size: 10pt" lang="ZH-CN">）。代码如下：</span><span style="line-height: 115%; font-size: 10pt"><o:p></o:p></span></p>          <p style="line-height: normal" class="MsoNormal"><span style="color: blue; font-size: 9pt">string</span><span style="font-size: 9pt"> szName = <span style="color: #a31515">&quot;Charles Simonyi&quot;</span>;<o:p></o:p></span></p>          <p style="line-height: normal" class="MsoNormal"><span style="color: blue; font-size: 9pt">int</span><span style="font-size: 9pt"> iName = szName.IndexOf(<span style="color: #a31515">' '</span>);<o:p></o:p></span></p>          <p style="margin-bottom: 10pt" class="MsoNormal"><span style="line-height: 115%; color: blue; font-size: 9pt">string</span><span style="line-height: 115%; font-size: 9pt"> firstName = szName.Substring(0, iName);</span><span style="line-height: 115%; font-size: 10pt"><o:p></o:p></span></p>       </td>     </tr>   </tbody></table>  <p style="margin-bottom: 10pt" class="MsoNormal"><o:p>&#160;</o:p></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">微软推荐的编程风格请参阅</span>MSDN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">中的“</span>Guidelines for Names<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”主题。简单概括如下。</span></p>  <table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; margin-left: 5.4pt; border-top: medium none; border-right: medium none" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"><tbody>     <tr>       <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 243pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in" valign="top" width="324">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">类型</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 189pt; padding-right: 5.4pt; border-top: 1pt solid; border-right: 1pt solid; padding-top: 0in" valign="top" width="252">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">规则</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 243pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="324">         <p class="MsoNormal">namespace<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（命名空间），</span>interface<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（接口），</span>class<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（类），</span>property<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（属性），</span>method<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（方法）</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 189pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="252">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">遵循</span>PascalCasing<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，即首字母大写，然后每个单词的首字母都是大写</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 243pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="324">         <p class="MsoNormal">namespace<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（命名空间），</span>interface<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（接口），</span>class<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（类），</span>property<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（属性），</span>parameter<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（参数）、</span>local variable<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（局部变量）</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 189pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="252">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">都由名词或者动名词组成</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 243pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="324">         <p class="MsoNormal">interface<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（接口）</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 189pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="252">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">由“</span>I+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">名词”组成</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 243pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="324">         <p class="MsoNormal">method<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（方法）</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 189pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="252">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">由“动词</span>+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">名词”组成</span></p>       </td>     </tr>      <tr>       <td style="border-bottom: 1pt solid; border-left: 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; width: 243pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="324">         <p class="MsoNormal">parameter<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（参数）、</span>local variable<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（局部变量）</span></p>       </td>        <td style="border-bottom: 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 189pt; padding-right: 5.4pt; border-top: medium none; border-right: 1pt solid; padding-top: 0in" valign="top" width="252">         <p class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">遵循</span>camelCasing<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，即首字母小写，从第二个单词开始首字母大写</span></p>       </td>     </tr>   </tbody></table>  <p style="margin-bottom: 10pt" class="MsoNormal"><o:p>&#160;</o:p></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">但是</span>MSDN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">上并没有内部成员的命名规范。大概是觉得内部成员，编程人员可以自行规定。笔者曾经工作过的一个部门有一位高级开发人员，他当时在写一个相当复杂的功能。其伪代码片段如下：</span></p>  <p style="line-height: normal" class="MsoNormal"><span style="color: blue; font-size: 9pt">class</span><span style="font-size: 9pt"> <span style="color: #2b91af">RealCaseStudy<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt">{<o:p></o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160; </span><span style="color: green">// member variable<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160; </span><span style="color: blue">private</span> <span style="color: blue">string</span> <span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><font color="#000000">usrId</font></span>;<o:p></o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><o:p>&#160;</o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160; </span><span style="color: green">//...other code<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="color: green; font-size: 9pt"><o:p>&#160;</o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160; </span><span style="color: blue">private</span> <span style="color: blue">void</span> DoAComplexCalculation()<o:p></o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160; </span>{<o:p></o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: green">//local variable usrId. It is a typo.<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: blue">string</span> <span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><font color="#000000">userId</font></span> = <span style="color: #2b91af">String</span>.Empty;<o:p></o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: green">//some complex code<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: green">//...<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="color: green; font-size: 9pt"><o:p>&#160;</o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: green">// Actually should use the member variable<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: green">// '<span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">usrId</span>' here.<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><font color="#000000">userId</font></span> = CallAnotherMethod();<o:p></o:p></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><span style="color: green">// other complex code<o:p></o:p></span></span></p>  <p style="line-height: normal" class="MsoNormal"><span style="font-size: 9pt"><span>&#160;&#160;&#160; </span>}<o:p></o:p></span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="line-height: 115%; font-size: 9pt">}</span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">因为这个</span>DoAComplexCalculation<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">方法本身很复杂、很长，谁没有留意有一个局部变量“</span>userId<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”和成员变量“</span>usrId<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”只差一个字符。结果在应该给成员变量赋值的地方，错赋给局部变量。这个小小的</span>typo<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">（打字错误）让他的调试工作毫无进展并牵动了很多资源，结果还让整个进度完了一周，最后才由另外一位程序员发现解决。他当时很可能是把局部变量移到到成员变量的时候少敲一个字符。在赋值的时候，敲“</span>us<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”出现的代码提示中局部变量先于成员变量。因为两个变量本来就是代表同一个意思，开发者并没有仔细查看选中变量，从而导致天大的失误。这正是所谓的“细节决定成败”。如果他遵循良好的命名规范，这个问题自然就会被避开。解决的方法有两种：</span></p>  <p style="text-indent: -0.25in; margin-bottom: 10pt" class="MsoListParagraphCxSpFirst"><span><span>1.</span></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">“</span>this.[memberVariable]<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”</span></p>  <p style="text-indent: -0.25in; margin-bottom: 10pt" class="MsoListParagraphCxSpLast"><span><span>2.</span></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">“</span>_[memberVariable]<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”</span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">两者没有本质的区别，只是习惯体验不同。笔者采用的是方法二。好处就是简单，只需要敲一个字符“</span>_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”就可以按照代码提示选择正确的成员变量，而方法一需要多敲几个字符才能获得代码提示。要是算上删除这</span>5<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">个字符，如果还要修改，工作量起码翻倍。下划线不好的地方是看起来奇怪。读者可以自行选择自己喜欢的方式。笔者也在网上见过的一些大侠用“</span>this.m_[xxXx]<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”的，这个双保险有点画蛇添足（或者说</span>Over-Kill<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）。“</span>m_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”在</span>MFC<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">中非常常见，但对于</span>C#<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">这个没有全局变量，即，不会用到“</span>g_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”前缀（</span>global<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）；没有局部静态变量，即，不会用到“</span>s_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”前缀（</span>static<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）的语言来说，用“</span>m_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”前缀明显没有意义。因为没有其它语意干扰单个“</span>_<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”前缀代表成员变量的语意。下面简要总结笔者在本书中采用的命名规范：</span></p>  <p style="text-indent: -0.25in; margin-bottom: 10pt" class="MsoListParagraphCxSpFirst"><span><span>1.<span style="font: 7pt &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal">&#160; </span></span></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">首选</span>MSDN<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">上的规则（即</span>Pascal/Camel<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">规则）；</span></p>  <p style="text-indent: -0.25in; margin-bottom: 10pt" class="MsoListParagraphCxSpMiddle"><span><span>2.<span style="font: 7pt &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal">&#160; </span></span></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">在</span>UI<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">编程时，控件对应的变量依然用</span>Systems Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">；</span></p>  <p style="text-indent: -0.25in; margin-bottom: 10pt" class="MsoListParagraphCxSpMiddle"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">3. <span style="font-family: &#39;微软雅黑&#39;,&#39;sans-serif&#39;" lang="ZH-CN">成员变量遵循“</span>_[memberVariable]<span style="font-family: &#39;微软雅黑&#39;,&#39;sans-serif&#39;" lang="ZH-CN">”;</span></span></p>  <p style="text-indent: -0.25in; margin-bottom: 10pt" class="MsoListParagraphCxSpLast"><span><span><font face="微软雅黑">4. 只读（static readonly）的简单类型用“全大写名词+[_全大写名词]<span style="font-family: &#39;微软雅黑&#39;,&#39;sans-serif&#39;" lang="ZH-CN">”</span></font></span></span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">如果读者不喜欢条款</span>2<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，网上提倡的代替方式是用“变量名</span>+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">控件名”，如“</span>nameTextBox<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">”（变量名：</span>name+<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">控件名：</span>TextBox<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）。一般来说，大家都按照一个规范来做，持之以恒，也没什么大碍。只是写代码是天天都要做的事情，也应该知道这些规矩的来龙去脉。这些细节积小成多，可能会导致很不一样的结果。另外，让笔者小惊讶的是搜中文资料（</span>Google<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">或者</span>Baidu<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">）时发现除了中文版的维基百科，几乎都只是提到</span>Systems Hungarian<span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">，而且似乎流传多年的版本都是出自同一个人之手。也许是看英文的懒得转载，看中文的从来不会想到去看个究竟。</span></p>  <p style="margin-bottom: 10pt" class="MsoNormal">   <br /><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN"></span></p>  <p style="margin-bottom: 10pt" class="MsoNormal"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;" lang="ZH-CN">--摘自我新出书的一节     <br /></span></p><img src="http://www.cnblogs.com/1landonsea/aggbug/1559366.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2009/09/03/1559366.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2009/09/03/1559366.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>VS.Net 2005, VSS 2005, SQL SERVER 2005 Released, Inner Available</title><link>http://www.cnblogs.com/1landonsea/archive/2005/11/01/VSVSSSQL2005Release.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Tue, 01 Nov 2005 02:53:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2005/11/01/VSVSSSQL2005Release.html</guid><description><![CDATA[<p>阅读: 746 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2005-11-01 10:53 <a href="http://www.cnblogs.com/1landonsea/archive/2005/11/01/VSVSSSQL2005Release.html" target="_blank">原文链接</a></p><SPAN style="FONT-FAMILY: Arial">注意，卸载VS.NET 2005 peta 需要专门的工具，不然很容易卸坏了。<BR>我的同事悄悄放下Test Case开始疯狂安装了，哈哈</SPAN><img src="http://www.cnblogs.com/1landonsea/aggbug/266113.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2005/11/01/VSVSSSQL2005Release.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2005/11/01/VSVSSSQL2005Release.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>也说VS.Net 下的 IContainer, IComoponent, ISite</title><link>http://www.cnblogs.com/1landonsea/archive/2005/03/25/125741.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Fri, 25 Mar 2005 09:28:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2005/03/25/125741.html</guid><description><![CDATA[<p>阅读: 1019 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2005-03-25 17:28 <a href="http://www.cnblogs.com/1landonsea/archive/2005/03/25/125741.html" target="_blank">原文链接</a></p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 最近老在 asp.net 的技术上转悠就看到这三个接口。google了一下，很多设计模式的东西挖都出来。。不过不论别人是怎么用的。在 ms 的 Web 设计中，System.Web.UI.WebControl 都是 IComponent，或者说都是从这个接口继承的。VS.Net 设计器本身实现 IContainer，它可以拥有多个Component，而每一个设计图面是ISite。一个设计视图只能有一个Component？下面有个window Form 的结构图。Web Form 的模式应该差不多。但我看来看去还是不明白这个ISite在哪，有什么用？更准确的说有什么不可替代的地方？
<br/><img height="214" src="http://www.microsoft.com/china/MSDN/library/netFramework/netframework/art/CustFormfig03.gif" width="307" />
</p><img src="http://www.cnblogs.com/1landonsea/aggbug/125741.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2005/03/25/125741.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2005/03/25/125741.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>臆说道学儒家</title><link>http://www.cnblogs.com/1landonsea/archive/2005/03/07/114207.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Mon, 07 Mar 2005 02:25:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2005/03/07/114207.html</guid><description><![CDATA[<p>阅读: 716 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2005-03-07 10:25 <a href="http://www.cnblogs.com/1landonsea/archive/2005/03/07/114207.html" target="_blank">原文链接</a></p><p dir="ltr" style="MARGIN-RIGHT: 0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 人一天天长大老去，自然对于自己的经历有个看法。这些看法对于后人来说则是宝贵的经验。只是能把这些经验说清楚很不容易。如果还真有人说明白过，就算是老子。他只用五千子就把问题说得很透彻。旧时一般说外用儒家内用道学。内用就是自己用的，没法对别人说；或者很难说个透彻；或者是很难比老子说的透彻。几千年过去，几个大的学说中，唯独道学发展缓慢，甚少推陈出新。这也许因为老子说得太绝。也许也因为如此，老子说完後就悄悄归隐————他已无话可说。老子的话太真，只能自用，自己领会，难以宣扬。加上老子后来的归隐，使得后世臆断道学就是归隐、退缩、避世的代名词，可叹可惜。也许孔子也看到这一点。知道世人愚昧，能领悟者寥寥，等到这些人能领悟之时已经徐徐老已，晚了。孔子便耗尽心机，想出一套罗嗦繁杂的教条规章制度来让世人练习。虽然后人难以跳出孔子的论说，但规章制度很容易发展完善。后世众生就在此上做文章，大显身手。特别在宋朝出了儒家大闲人，别的不干把三从四德发展到无微不至，让人敬仰膜拜。太过就不得自然，违背一般法则必然会受到惩罚。宋在内部发展上达到了一个极至，但是忽略外部的强敌，怎个不亡？</p><img src="http://www.cnblogs.com/1landonsea/aggbug/114207.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2005/03/07/114207.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2005/03/07/114207.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>看了一下VS2005对托管C++的修正</title><link>http://www.cnblogs.com/1landonsea/archive/2005/02/25/109199.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Fri, 25 Feb 2005 08:08:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2005/02/25/109199.html</guid><description><![CDATA[<p>阅读: 869 评论: 0 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2005-02-25 16:08 <a href="http://www.cnblogs.com/1landonsea/archive/2005/02/25/109199.html" target="_blank">原文链接</a></p>原文连接：<a href="http://blog.sunmast.com/sunmast/articles/860.aspx">http://blog.sunmast.com/sunmast/articles/860.aspx</a>
<br/>
<br/>我的一些看法：
<br/>用 gcnew 是个好主意。 
<br/>
<br/>看到这个比较兴奋： 
<br/>引用类型在堆栈上 ReferenceType h; 
<br/>处理Dispose的方式也还不错： 
<br/>调用Dispose 方法 ReferenceType^ h = gcnew ReferenceType; 
<br/>delete h; 
<br/>
<br/>这个也可以接受： 
<br/>调用Dispose 方法 ReferenceType^ h = gcnew ReferenceType; 
<br/>delete h; 
<br/>
<br/>但是这样 
<br/>ref class ReferenceType {}; 
<br/>value class ValueType {}; 
<br/>不见得比 
<br/>__gc class ReferenceType {}; 
<br/>__value class ValueType {}; 
<br/>高雅。或者说一样垃圾。除非 ref/value 可以省略。对于class 缺省应该是ref，对于 struct缺省应该是 value。 
<br/>
<br/>不过最让我感到恼火同时也感到欣慰的是： 
<br/>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">ref</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&#160;ReferenceType&#160;
<br/><img id="Codehighlighter1_32_152_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_32_152_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_32_152_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_32_152_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_32_152_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_32_152_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_32_152_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_32_152_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_32_152_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_32_152_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;程序集内部和外部同时可以访问&#160;</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;仅程序集内部可以访问&#160;</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" /></span><span style="COLOR: #000000">&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&#160;程序集外部仅继承了的类型可以访问，内部代码可以直接访问&#160;</span><span style="COLOR: #008000">
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" /></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">;&#160;</span>
   </div>
</div>
<br/>的确，这样对访问的控制更精确了。。。但是*——#&#8230;&#8230;%—%86 
<br/>
<br/>新的box和un-box还是可以接受。新的属性处理的确比原来的好多了。但是 
<br/>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #000000">property&#160;String</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&#160;Name&#160;
<br/><img id="Codehighlighter1_23_123_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_23_123_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_23_123_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_23_123_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_23_123_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_23_123_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_23_123_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_23_123_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_23_123_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_23_123_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;String</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">get</span><span style="COLOR: #000000">()&#160;
<br/><img id="Codehighlighter1_43_66_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_43_66_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_43_66_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_43_66_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_43_66_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_43_66_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_43_66_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_43_66_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_43_66_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_43_66_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&#160;m_value;&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&#160;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">(String</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&#160;value)&#160;
<br/><img id="Codehighlighter1_96_120_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_96_120_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_96_120_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_96_120_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_96_120_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_96_120_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_96_120_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_96_120_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_96_120_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_96_120_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;m_value&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;value;&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" />}</span></span><span style="COLOR: #000000">&#160;</span>
   </div>
</div>
<br/>还是太罗嗦。这个property 本来就是特殊处理。那么Get当然是返回property那行的类型。set的输入参数也肯定是相同的类型。而且也肯定没有返回值。所以，上面的例子完全应该： 
<br/>
<div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
   <div><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /><span style="COLOR: #000000">property&#160;String</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&#160;Name&#160;
<br/><img id="Codehighlighter1_23_97_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_23_97_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_23_97_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_23_97_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_23_97_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_23_97_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_23_97_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_23_97_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="DISPLAY: none" /></span><span id="Codehighlighter1_23_97_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_23_97_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">get</span><span style="COLOR: #000000">()&#160;
<br/><img id="Codehighlighter1_35_58_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_35_58_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_35_58_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_35_58_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_35_58_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_35_58_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_35_58_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_35_58_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_35_58_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_35_58_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&#160;m_value;&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">()&#160;
<br/><img id="Codehighlighter1_70_94_Open_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_70_94_Open_Text.style.display=&#39;none&#39;; Codehighlighter1_70_94_Closed_Image.style.display=&#39;inline&#39;; Codehighlighter1_70_94_Closed_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" width="11" align="top" /><img id="Codehighlighter1_70_94_Closed_Image" onclick="this.style.display=&#39;none&#39;; Codehighlighter1_70_94_Closed_Text.style.display=&#39;none&#39;; Codehighlighter1_70_94_Open_Image.style.display=&#39;inline&#39;; Codehighlighter1_70_94_Open_Text.style.display=&#39;inline&#39;;" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" width="11" align="top" style="DISPLAY: none" />&#160;&#160;&#160;&#160;</span><span id="Codehighlighter1_70_94_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img height="20" src="http://www.cnblogs.com/Images/dot.gif" width="15" /></span><span id="Codehighlighter1_70_94_Open_Text"><span style="COLOR: #000000">{&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" width="11" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;m_value&#160;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&#160;value;&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" width="11" align="top" />&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: #000000">&#160;
<br/><img height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" width="11" align="top" />}</span></span>
   </div>
</div>
<br/>
<br/>总体来说，好消息比坏消息多了点。 <a id="Comments.ascx_CommentList__ctl5_EditLink" href="javascript:__doPostBack(&#39;Comments.ascx$CommentList$_ctl5$EditLink&#39;,&#39;&#39;)"></a><img src="http://www.cnblogs.com/1landonsea/aggbug/109199.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/1landonsea/archive/2005/02/25/109199.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2005/02/25/109199.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>春节广州西关行</title><link>http://www.cnblogs.com/1landonsea/archive/2005/02/23/108032.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Wed, 23 Feb 2005 05:59:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2005/02/23/108032.html</guid><description><![CDATA[<p>阅读: 1158 评论: 5 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2005-02-23 13:59 <a href="http://www.cnblogs.com/1landonsea/archive/2005/02/23/108032.html" target="_blank">原文链接</a></p><p>&#160;&#160;&#160;&#160; 春节回家闲来无事决定转转西关，感受一下岭南昔日独有的民风和建筑。不用多说，跟着我的相机浏览一下复原的西关大屋。 
<br/>&#160; 
   <table cellSpacing="0" cellPadding="3" border="0" style="WIDTH: 640px; BORDER-COLLAPSE: collapse">
       <tbody>
           <tr>
              <td align="center" bgColor="#fffff0">
                  <table cellSpacing="0" cellPadding="0" border="2" style="BORDER-LEFT-COLOR: #c0c0c0; BORDER-BOTTOM-COLOR: #c0c0c0; BORDER-TOP-COLOR: #c0c0c0; BORDER-RIGHT-COLOR: #c0c0c0">
                      <tbody>
                            <tr>
                            <td bgColor="#c0c0c0"><img height="275" src="http://photo.poco.cn/images/20050216/258310020050216093201.jpg" width="320" align="left" style="WIDTH: 320px" /> 
                            </td>
                            </tr>
                      </tbody>
                  </table>
              </td>
              <td bgColor="#fffff0">带西洋教堂花窗的门。当时广州是对外贸易的重要港口，这些舶来之物随处可见。</td>
           </tr>
           <tr>
              <td align="center" bgColor="#fffff0">
                  <table cellSpacing="0" cellPadding="0" border="2" style="BORDER-LEFT-COLOR: #c0c0c0; BORDER-BOTTOM-COLOR: #c0c0c0; BORDER-TOP-COLOR: #c0c0c0; BORDER-RIGHT-COLOR: #c0c0c0">
                      <tbody>
                            <tr>
                            <td bgColor="#c0c0c0"><img height="320" src="http://photo.poco.cn/images/20050216/258310020050216093241.jpg" width="257" align="left" style="WIDTH: 257px; HEIGHT: 320px" /> 
                            </td>
                            </tr>
                      </tbody>
                  </table>
              </td>
              <td bgColor="#fffff0">花厅的一角。花厅也就是正厅。</td>
           </tr>
           <tr>
              <td align="center" bgColor="#fffff0">
                  <table cellSpacing="0" cellPadding="0" border="2" style="BORDER-LEFT-COLOR: #c0c0c0; BORDER-BOTTOM-COLOR: #c0c0c0; BORDER-TOP-COLOR: #c0c0c0; BORDER-RIGHT-COLOR: #c0c0c0">
                      <tbody>
                            <tr>
                            <td bgColor="#c0c0c0"><img height="240" src="http://photo.poco.cn/images/20050216/258310020050216093313.jpg" width="320" align="left" style="WIDTH: 320px" /> 
                            </td>
                            </tr>
                      </tbody>
                  </table>
              </td>
              <td bgColor="#fffff0">床沿。花厅后面是主人房。这个上百年历史的床还是像新的一样。</td>
           </tr>
           <tr>
              <td align="center" bgColor="#fffff0">
                  <table cellSpacing="0" cellPadding="0" border="2" style="BORDER-LEFT-COLOR: #c0c0c0; BORDER-BOTTOM-COLOR: #c0c0c0; BORDER-TOP-COLOR: #c0c0c0; BORDER-RIGHT-COLOR: #c0c0c0">
                      <tbody>
                            <tr>
                            <td bgColor="#c0c0c0"><img height="320" src="http://photo.poco.cn/images/20050216/258310020050216093346.jpg" width="219" align="left" style="HEIGHT: 320px" /> 
                            </td>
                            </tr>
                      </tbody>
                  </table>
              </td>
              <td bgColor="#fffff0">少爷房的外面。复原大屋的少爷房在二楼，旁边就是小姐的房间。可惜那里光线不好没拍什么好东西。</td>
           </tr>
           <tr>
              <td align="center" bgColor="#fffff0">
                  <table cellSpacing="0" cellPadding="0" border="2" style="BORDER-LEFT-COLOR: #c0c0c0; BORDER-BOTTOM-COLOR: #c0c0c0; BORDER-TOP-COLOR: #c0c0c0; BORDER-RIGHT-COLOR: #c0c0c0">
                      <tbody>
                            <tr>
                            <td bgColor="#c0c0c0"><img height="255" src="http://photo.poco.cn/images/20050216/258310020050216093510.jpg" width="320" align="left" style="WIDTH: 320px" /> 
                            </td>
                            </tr>
                      </tbody>
                  </table>
              </td>
              <td bgColor="#fffff0">精美的花窗。</td>
           </tr>
       </tbody>
   </table>
</p><img src="http://www.cnblogs.com/1landonsea/aggbug/108032.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/1landonsea/archive/2005/02/23/108032.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2005/02/23/108032.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>你会重抛异常(re-throw Exception)不？</title><link>http://www.cnblogs.com/1landonsea/archive/2005/01/15/RethrowExceptionInCSharp.html</link><dc:creator>Aaron@cnblogs</dc:creator><author>Aaron@cnblogs</author><pubDate>Fri, 14 Jan 2005 17:01:00 GMT</pubDate><guid>http://www.cnblogs.com/1landonsea/archive/2005/01/15/RethrowExceptionInCSharp.html</guid><description><![CDATA[<p>阅读: 3013 评论: 3 作者: <a href="http://www.cnblogs.com/1landonsea/" target="_blank">Aaron@cnblogs</a> 发表于 2005-01-15 01:01 <a href="http://www.cnblogs.com/1landonsea/archive/2005/01/15/RethrowExceptionInCSharp.html" target="_blank">原文链接</a></p>重抛异常(re-throw&nbsp;Exception) <br />我一直以来就是这样写代码：<br /><br />01:&nbsp;public&nbsp;void&nbsp;ThrowFunction()<br />02:&nbsp;{<br />03:&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />04:&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;errMessage&nbsp;=&nbsp;"Just&nbsp;sample&nbsp;throwing.";<br />05:&nbsp;&nbsp;&nbsp;&nbsp;Boolean&nbsp;isSomeWrong&nbsp;=&nbsp;true;<br />06:&nbsp;&nbsp;&nbsp;&nbsp;//do&nbsp;something<br />07:&nbsp;&nbsp;&nbsp;&nbsp;if(isSomeWrong)<br />08:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(errMessage);<br />09:&nbsp;}<br />10:<br />11:&nbsp;public&nbsp;Object&nbsp;GetSomeReturn()<br />12:&nbsp;{<br />13:&nbsp;&nbsp;&nbsp;Object&nbsp;ret&nbsp;=&nbsp;null;&nbsp;//&nbsp;return&nbsp;value.<br />14:&nbsp;&nbsp;&nbsp;Object&nbsp;someObj&nbsp;=&nbsp;null;&nbsp;//&nbsp;local&nbsp;value.<br />15:&nbsp;<br />16:&nbsp;&nbsp;&nbsp;try<br />17:&nbsp;&nbsp;&nbsp;{<br />18:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />19:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;new&nbsp;Object();<br />20:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;somObj&nbsp;=&nbsp;new&nbsp;Object();<br />21:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;some&nbsp;thing&nbsp;<br />22:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThrowFunction();<br />23:&nbsp;&nbsp;&nbsp;}<br />24:&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e)<br />25:&nbsp;&nbsp;&nbsp;{<br />26:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Clean&nbsp;up&nbsp;return&nbsp;value.<br />27:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ret&nbsp;!=&nbsp;null)&nbsp;{&nbsp;ret.Dispose();&nbsp;ret&nbsp;=&nbsp;null;&nbsp;}<br />28:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;e;<br />29:&nbsp;&nbsp;&nbsp;}<br />30:&nbsp;&nbsp;&nbsp;finally<br />31:&nbsp;&nbsp;&nbsp;{<br />32:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(somObj&nbsp;!=&nbsp;null)&nbsp;{&nbsp;somObj.Dispose();&nbsp;somObj&nbsp;=&nbsp;null;&nbsp;}<br />33:&nbsp;&nbsp;&nbsp;}<br />34:&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />35:&nbsp;}<br /><br />怎么看都好像没问题，msdn也是这样写的，连Java都是这样写的。但在总是在上一层的<br />catch中发现少了些信息。最近搜索到一篇文章才发现我正正写错了2年。而且，文章提<br />到的书也颇有名气。问题在哪？就在于"throw&nbsp;e"。这些写打断了错误栈（stack）链<br />（break&nbsp;the&nbsp;exception&nbsp;chain&nbsp;or&nbsp;exception&nbsp;stack&nbsp;trace）。如果你查看这个<br />Exception变量的StackTrace属性：<br />Exception:&nbsp;System.Exception:&nbsp;"Just&nbsp;sample&nbsp;throwing."<br />at&nbsp;XXX.GetSomeReturn()&nbsp;in&nbsp;YourProgramPath\SourceCodeName.cs:line&nbsp;18<br /><br />是line:28。但是就丢失了关于ThrowFunction发生的事。实际上如果这不是你要的结<br />果，你只要把28行改为'throw;'即可。如果你catch&nbsp;exception仅仅为了clean-up。<br />还可以把24行改为'catch(Exception)'&nbsp;甚至'catch'。最懒惰的写法就是：<br /><br />01:&nbsp;public&nbsp;void&nbsp;ThrowFunction()<br />02:&nbsp;{<br />03:&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />04:&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;errMessage&nbsp;=&nbsp;"Just&nbsp;sample&nbsp;throwing.";<br />05:&nbsp;&nbsp;&nbsp;&nbsp;Boolean&nbsp;isSomeWrong&nbsp;=&nbsp;true;<br />06:&nbsp;&nbsp;&nbsp;&nbsp;//do&nbsp;something<br />07:&nbsp;&nbsp;&nbsp;&nbsp;if(isSomeWrong)<br />08:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(errMessage);<br />09:&nbsp;}<br />10:<br />11:&nbsp;public&nbsp;Object&nbsp;GetSomeReturn()<br />12:&nbsp;{<br />13:&nbsp;&nbsp;&nbsp;Object&nbsp;ret&nbsp;=&nbsp;null;&nbsp;//&nbsp;return&nbsp;value.<br />14:&nbsp;&nbsp;&nbsp;Object&nbsp;someObj&nbsp;=&nbsp;null;&nbsp;//&nbsp;local&nbsp;value.<br />15:&nbsp;<br />16:&nbsp;&nbsp;&nbsp;try<br />17:&nbsp;&nbsp;&nbsp;{<br />18:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />19:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;new&nbsp;Object();<br />20:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;somObj&nbsp;=&nbsp;new&nbsp;Object();<br />21:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;some&nbsp;thing&nbsp;<br />22:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThrowFunction();<br />23:&nbsp;&nbsp;&nbsp;}<br />24:&nbsp;&nbsp;&nbsp;catch<br />25:&nbsp;&nbsp;&nbsp;{<br />26:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Clean&nbsp;up&nbsp;return&nbsp;value.<br />27:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ret&nbsp;!=&nbsp;null)&nbsp;{&nbsp;ret.Dispose();&nbsp;ret&nbsp;=&nbsp;null;&nbsp;}<br />28:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw;<br />29:&nbsp;&nbsp;&nbsp;}<br />30:&nbsp;&nbsp;&nbsp;finally<br />31:&nbsp;&nbsp;&nbsp;{<br />32:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(somObj&nbsp;!=&nbsp;null)&nbsp;{&nbsp;somObj.Dispose();&nbsp;somObj&nbsp;=&nbsp;null;&nbsp;}<br />33:&nbsp;&nbsp;&nbsp;}<br />34:&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />35:&nbsp;}<br /><br />当然如果你想重新包装你的异常，则：<br /><br />01:&nbsp;public&nbsp;void&nbsp;ThrowFunction()<br />02:&nbsp;{<br />03:&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />04:&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;errMessage&nbsp;=&nbsp;"Just&nbsp;sample&nbsp;throwing.";<br />05:&nbsp;&nbsp;&nbsp;&nbsp;Boolean&nbsp;isSomeWrong&nbsp;=&nbsp;true;<br />06:&nbsp;&nbsp;&nbsp;&nbsp;//do&nbsp;something<br />07:&nbsp;&nbsp;&nbsp;&nbsp;if(isSomeWrong)<br />08:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(errMessage);<br />09:&nbsp;}<br />10:<br />11:&nbsp;public&nbsp;Object&nbsp;GetSomeReturn()<br />12:&nbsp;{<br />13:&nbsp;&nbsp;&nbsp;Object&nbsp;ret&nbsp;=&nbsp;null;&nbsp;//&nbsp;return&nbsp;value.<br />14:&nbsp;&nbsp;&nbsp;Object&nbsp;someObj&nbsp;=&nbsp;null;&nbsp;//&nbsp;local&nbsp;value.<br />15:&nbsp;<br />16:&nbsp;&nbsp;&nbsp;try<br />17:&nbsp;&nbsp;&nbsp;{<br />18:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />19:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;new&nbsp;Object();<br />20:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;somObj&nbsp;=&nbsp;new&nbsp;Object();<br />21:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;some&nbsp;thing&nbsp;<br />22:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThrowFunction();<br />23:&nbsp;&nbsp;&nbsp;}<br />24:&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e)<br />25:&nbsp;&nbsp;&nbsp;{<br />26:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Clean&nbsp;up&nbsp;return&nbsp;value.<br />27:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ret&nbsp;!=&nbsp;null)&nbsp;{&nbsp;ret.Dispose();&nbsp;ret&nbsp;=&nbsp;null;&nbsp;}<br />28:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;YourException("Your&nbsp;costum&nbsp;error&nbsp;message",e);<br />29:&nbsp;&nbsp;&nbsp;}<br />30:&nbsp;&nbsp;&nbsp;finally<br />31:&nbsp;&nbsp;&nbsp;{<br />32:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(somObj&nbsp;!=&nbsp;null)&nbsp;{&nbsp;somObj.Dispose();&nbsp;somObj&nbsp;=&nbsp;null;&nbsp;}<br />33:&nbsp;&nbsp;&nbsp;}<br />34:&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />35:&nbsp;}<br /><br />上面的写法：<br />throw&nbsp;new&nbsp;YourException("Your&nbsp;costum&nbsp;error&nbsp;message",e);<br />同样不会打断stack&nbsp;trace。比如需要Log下异常然后重抛该异常而不打断stack&nbsp;trace。<br />可以这样写：<br />01:&nbsp;public&nbsp;void&nbsp;ThrowFunction()<br />02:&nbsp;{<br />03:&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />04:&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;errMessage&nbsp;=&nbsp;"Just&nbsp;sample&nbsp;throwing.";<br />05:&nbsp;&nbsp;&nbsp;&nbsp;Boolean&nbsp;isSomeWrong&nbsp;=&nbsp;true;<br />06:&nbsp;&nbsp;&nbsp;&nbsp;//do&nbsp;something<br />07:&nbsp;&nbsp;&nbsp;&nbsp;if(isSomeWrong)<br />08:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception(errMessage);<br />09:&nbsp;}<br />10:<br />11:&nbsp;public&nbsp;Object&nbsp;GetSomeReturn()<br />12:&nbsp;{<br />13:&nbsp;&nbsp;&nbsp;Object&nbsp;ret&nbsp;=&nbsp;null;&nbsp;//&nbsp;return&nbsp;value.<br />14:&nbsp;&nbsp;&nbsp;Object&nbsp;someObj&nbsp;=&nbsp;null;&nbsp;//&nbsp;local&nbsp;value.<br />15:&nbsp;<br />16:&nbsp;&nbsp;&nbsp;try<br />17:&nbsp;&nbsp;&nbsp;{<br />18:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Initialize<br />19:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;new&nbsp;Object();<br />20:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;somObj&nbsp;=&nbsp;new&nbsp;Object();<br />21:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;some&nbsp;thing&nbsp;<br />22:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThrowFunction();<br />23:&nbsp;&nbsp;&nbsp;}<br />24:&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e)<br />25:&nbsp;&nbsp;&nbsp;{<br />26:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Clean&nbsp;up&nbsp;return&nbsp;value.<br />27:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ret&nbsp;!=&nbsp;null)&nbsp;{&nbsp;ret.Dispose();&nbsp;ret&nbsp;=&nbsp;null;&nbsp;}<br />28:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;YourLogClass.LogException(e);<br />29:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw;<br />30:&nbsp;&nbsp;&nbsp;}<br />31:&nbsp;&nbsp;&nbsp;finally<br />32:&nbsp;&nbsp;&nbsp;{<br />33:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(somObj&nbsp;!=&nbsp;null)&nbsp;{&nbsp;somObj.Dispose();&nbsp;somObj&nbsp;=&nbsp;null;&nbsp;}<br />34:&nbsp;&nbsp;&nbsp;}<br />35:&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br />25:&nbsp;} <br /><br /> <font family="Arial"><strong>Link</strong></font><br /> <a href="http://dotnetguy.techieswithcats.com/archives/004118.shtml">Read the original article about re-throw exception.</a><img src="http://www.cnblogs.com/1landonsea/aggbug/92150.html?type=1" width="1" height="1" alt=""/><p>评论: 3　<a href="http://www.cnblogs.com/1landonsea/archive/2005/01/15/RethrowExceptionInCSharp.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/1landonsea/archive/2005/01/15/RethrowExceptionInCSharp.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56820/" target="_blank">苹果iPad或将内置摄像头 公司招聘启事暗示</a><span style="color:gray">(2010-02-10 11:43)</span><br/>· <a href="http://news.cnblogs.com/n/56818/" target="_blank">Google Buzz的优缺点分析</a><span style="color:gray">(2010-02-10 11:39)</span><br/>· <a href="http://news.cnblogs.com/n/56817/" target="_blank">京东商城刘强东：两个回合谈定1.5亿美元融资</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56816/" target="_blank">Google走到关键时刻：Buzz发布的背后</a><span style="color:gray">(2010-02-10 11:30)</span><br/>· <a href="http://news.cnblogs.com/n/56815/" target="_blank">李开复创新工场发展基金曝光 首单投移动互联</a><span style="color:gray">(2010-02-10 11:28)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56812/" target="_blank">Google社会化产品Buzz发布会实录</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>