﻿<?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>博客园-上海.NET俱乐部</title><link>http://ShangHai.cnblogs.com</link><description>上海.NET俱乐部</description><language>zh-cn</language><lastBuildDate>Thu, 07 Aug 2008 20:27:10 GMT</lastBuildDate><pubDate>Thu, 07 Aug 2008 20:27:10 GMT</pubDate><ttl>60</ttl><item><title>解读Lucene.Net  阅读索引</title><link>http://www.cnblogs.com/birdshover/archive/2008/08/07/1262521.html</link><dc:creator>Birdshover</dc:creator><author>Birdshover</author><pubDate>Thu, 07 Aug 2008 14:19:00 GMT</pubDate><guid>http://www.cnblogs.com/birdshover/archive/2008/08/07/1262521.html</guid><description><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a class="titlelink" id="Editor_Results_rprSelectionList_ctl02_Hyperlink1" href="http://www.cnblogs.com/birdshover/articles/1262388.html">解读Lucene.Net——说明</a>&nbsp;&nbsp; (2008年8月7日 2:39:55)</p>
<p>&nbsp;</p>
<p><a class="titlelink" id="Editor_Results_rprSelectionList_ctl01_LinkTitle" href="http://www.cnblogs.com/birdshover/articles/1262519.html">解读Lucene.Net —— 一、 Directory 之一</a>&nbsp; (2008年8月7日 2:40:01)</p>
<p><a class="titlelink" id="Editor_Results_rprSelectionList_ctl01_LinkTitle" href="http://www.cnblogs.com/birdshover/articles/1263273.html">解读Lucene.Net —— 一、 Directory 之二</a> (8-7 22:16) </p>
  <img src ="http://ShangHai.cnblogs.comaggbug/1262521.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41557/" target="_blank">[新闻]Microsoft Sync Framework 1.0 RTM发布了</a>]]></description></item><item><title>AutoCAD.net: 如何实现裁剪功能--Trim</title><link>http://www.cnblogs.com/wf225/archive/2008/08/07/1263206.html</link><dc:creator>无锋不起浪</dc:creator><author>无锋不起浪</author><pubDate>Thu, 07 Aug 2008 11:45:00 GMT</pubDate><guid>http://www.cnblogs.com/wf225/archive/2008/08/07/1263206.html</guid><description><![CDATA[摘要: AutoCAD.net: 如何实现裁剪功能--Trim&nbsp;&nbsp;<a href='http://www.cnblogs.com/wf225/archive/2008/08/07/1263206.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1263206.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41556/" target="_blank">[新闻]Cuil冲着Google开站又被撞稀巴烂，搜寻引擎的机会难道只有搜寻？</a>]]></description></item><item><title>AutoCAD.net: 求空间两曲线交点</title><link>http://www.cnblogs.com/wf225/archive/2008/08/07/1263194.html</link><dc:creator>无锋不起浪</dc:creator><author>无锋不起浪</author><pubDate>Thu, 07 Aug 2008 11:07:00 GMT</pubDate><guid>http://www.cnblogs.com/wf225/archive/2008/08/07/1263194.html</guid><description><![CDATA[摘要: 空间两条曲线求交点：
c1为curve已知
c1为curve已知
Point3dCollection m_ints = new Point3dCollection();

如果两曲线均不为三维多段线或则两曲线均为三维多段线，则有：
c1.IntersectWith(c2,Intersect.OnBothOperands, new Plane(),m_ints, 0, 0);得出的所有交点在c1曲线上
c2.IntersectWith(c1,Intersect.OnBothOperands, new Plane(),m_ints, 0, 0);得出的所有交点在c2曲线上
&nbsp;&nbsp;<a href='http://www.cnblogs.com/wf225/archive/2008/08/07/1263194.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1263194.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41555/" target="_blank">[新闻]Windows服务器平台近期重要更新预览</a>]]></description></item><item><title>SQL 計算一個字符串在另一個字符串中出現的次數</title><link>http://www.cnblogs.com/oec2003/archive/2008/08/06/1261611.html</link><dc:creator>oec2003</dc:creator><author>oec2003</author><pubDate>Wed, 06 Aug 2008 00:32:00 GMT</pubDate><guid>http://www.cnblogs.com/oec2003/archive/2008/08/06/1261611.html</guid><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 在sqlserver中來計算一個字符串在另一個字符串中出現的次數，通常會去用循環來匹配，然後計算出出現的次數，這樣的效能不是很高。現在講一種比較簡單的方法也能實現同樣的功能，思路如下：</p>
<p>&nbsp;&nbsp;&nbsp; 1：設有字符串str1 str2 ，現在要求str1 在 str2中出現的次數。</p>
<p>&nbsp;&nbsp;&nbsp; 2：將str1後面加上一個字符，如：str1+'_'，設更改後的字符串為str3。</p>
<p>&nbsp;&nbsp;&nbsp; 3：在str2中如果有子串str1 ，將之替換成str3，替換後的字符串設為str4。</p>
<p>&nbsp;&nbsp;&nbsp; 4：str4與str2的長度之差即為str1在str2中出現的次數。</p>
<p>看下麵這個函數</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_082957" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_082957').style.display='none'; document.getElementById('Code_Open_Image_082957').style.display='inline'; document.getElementById('Code_Open_Text_082957').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_082957" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_082957').style.display='none'; getElementById('Code_Closed_Image_082957').style.display='inline'; getElementById('Code_Closed_Text_082957').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_082957">Code</span><span id="Code_Open_Text_082957" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;fn_SCountOneWordOnOtherWord<br />
(<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@Word</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NVARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">200</span><span style="color: #000000">),<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@WordAll</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NVARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">2000</span><span style="color: #000000">)<br />
)<br />
</span><span style="color: #0000ff">RETURNS</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">CHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">4</span><span style="color: #000000">)<br />
</span><span style="color: #0000ff">AS</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">BEGIN</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">RETURN</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #ff00ff">len</span><span style="color: #000000">(</span><span style="color: #ff00ff">replace</span><span style="color: #000000">(</span><span style="color: #008000">@WordAll</span><span style="color: #000000">,</span><span style="color: #008000">@Word</span><span style="color: #000000">,</span><span style="color: #008000">@Word</span><span style="color: #808080">+</span><span style="color: #ff0000">'</span><span style="color: #ff0000">_</span><span style="color: #ff0000">'</span><span style="color: #000000">))</span><span style="color: #808080">-</span><span style="color: #ff00ff">len</span><span style="color: #000000">(</span><span style="color: #008000">@WordAll</span><span style="color: #000000">)<br />
</span><span style="color: #0000ff">END</span></span></div>
<img src ="http://ShangHai.cnblogs.comaggbug/1261611.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41552/" target="_blank">[新闻]全免费 谷歌奥运短信提醒发布</a>]]></description></item><item><title>谈谈C#的数值类型——顺便给for循环做个补充</title><link>http://www.cnblogs.com/birdshover/archive/2008/08/05/1261502.html</link><dc:creator>Birdshover</dc:creator><author>Birdshover</author><pubDate>Tue, 05 Aug 2008 14:17:00 GMT</pubDate><guid>http://www.cnblogs.com/birdshover/archive/2008/08/05/1261502.html</guid><description><![CDATA[<p>补充一下：上次讲for循环的文章 <a class="postTitle2" id="homepage1_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl00_TitleUrl" href="http://www.cnblogs.com/birdshover/archive/2008/08/04/1260499.html">详解for循环（各种用法）</a> </p>
<p>&nbsp;</p>
<p>假如变量的值 i = int.<font face="Verdana"><font face="Verdana">MaxValue</font>;这个时候运行;Console.WriteLine(++i);输出什么？</font></p>
<p>&nbsp;</p>
<p>假如我的循环写成这样：</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;start&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">.MaxValue&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">10</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;max&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">.MaxValue;<br />
&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;start;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;max&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">100</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>又会输出什么？</p>
<p>&nbsp;</p>
<p>答案令人大跌眼镜。</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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: #0000ff">int</span><span style="color: #000000">.MaxValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #0000ff">int</span><span style="color: #000000">.MaxValue);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);</span></div>
<p>输出了 </p>
<p>2147483647</p>
<p>-2147483648</p>
<p>&nbsp;</p>
<p>而上面的循环，编译正确，却没有被执行。为什么没有被执行？推断一下，int的最大值+1是负数，那么+100估计（嘿嘿，这里带有估计的一种情感）也是负数。那么i是int最大值减去10，是个正数，怎么也不能小于负数不是？那就不执行了。果然，int.<font face="Verdana"><font face="Verdana">MaxValue</font></font>+100 = -2147483549。</p>
<p>&nbsp;</p>
<p>为啥会这样？这就要从数字的补码说起了。你也猜到了吧？呵呵，-2147483648就是2147483647的补码嘛！</p>
<p>2147483647&nbsp; 的16进制是 0x7FFFFFFF ，2进制就是32个1，</p>
<p>而-2147483648 的16进制就是0x80000000,2进制就是1和32个0。</p>
<p>&nbsp;</p>
<p>看出来啦，C#内部并没有对int做溢出运算。加个checked就搞定了。</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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: #0000ff">int</span><span style="color: #000000">.MaxValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">checked</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>这个时候就会抛出一个异常。但是，一般还是少抛出异常的好，自己动手检查一下就好了。</p>
<p>&nbsp;</p>
<p>再回到循环，要是溢出，会对循环产生什么影响呢？把上面的循环改成：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;start&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">.MaxValue&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">10</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;max&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">.MaxValue;<br />
&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;start;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">.MaxValue;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>输出什么呢? 成无限循环了！！！</p>
<p>&nbsp;</p>
<p>在int中可能不太会出现这种问题，在byte里就会有这种状况。</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&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">byte</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;</span><span style="color: #800080">255</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>在上面的情况中，可能就想对byte的各种取值进行处理而已，但是，现在办不到了，因为这个循环成无限循环了。以下代码就可以解决这种状况：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
&nbsp;&nbsp;&nbsp;&nbsp;{</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&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">byte</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;IsMax(</span><span style="color: #0000ff">ref</span><span style="color: #000000">&nbsp;i);&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;IsMax(</span><span style="color: #0000ff">ref</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">255</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>这是比较特殊的解决方案。事实上还有其他运算来保证不溢出。</p>
<p>就是用&amp;运算。比如：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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: #0000ff">int</span><span style="color: #000000">.MaxValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080"><font face="Verdana">0x7FFFFFFF</font></span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);</span></div>
<p>&nbsp;</p>
<p>这段代码，输出的结果就是1.有兴趣的朋友可以自己做2进制的与运算看看，<font face="Verdana">0x7FFFFFFF就是int的最大值的16进制的表达方式。</font></p>
<p>这种用法看似没有用。</p>
<p>&nbsp;</p>
<p>但下面的代码中就能有效避免错误了，呵呵</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[</span><span style="color: #800080">128</span><span style="color: #000000">];<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">129</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setValue((</span><span style="color: #0000ff">sbyte</span><span style="color: #000000">)b,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">asdasd</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(getValue((</span><span style="color: #0000ff">sbyte</span><span style="color: #000000">)b));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;getValue(</span><span style="color: #0000ff">sbyte</span><span style="color: #000000">&nbsp;b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s[b&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0x7F</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setValue(</span><span style="color: #0000ff">sbyte</span><span style="color: #000000">&nbsp;b,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;value)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[b&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0x7F</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>最后讲最后一种数据类型，其他的都和上面三种类似，但是最后一种是个特例。</p>
<p>看看这句代码</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decimal d = decimal.MaxValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(++d);</font></p>
<p>这个会输出什么呢？自己去试试吧，呵呵。</p>
<p>&nbsp;</p>
<p>看了以上的代码对你也许没什么用，起一个警惕作用也是不错的。至于下面点的与操作，可能会对你看别人写的代码有所帮助。</p>
<p>这篇文章讲的比较简单，不过要完全理解，我是说深刻理解数据类型，不是我这个文章，还是需要了解很多方面的东西的。这种可以说是程序员的内功，不但要去学OOP,OOD,SOA等等设计上的东西，对底层还是要多学一学，设计的那是招式，内功还是要多练练的。练好内功有助于写出稳定的代码，架构再好，程序也需要稳定不是吗？</p>
<p>&nbsp;</p>
<p>2008年8月5日 by yurow @ <font face="Verdana">http://www.cnblogs.com/birdshover/</font></p>
<img src ="http://ShangHai.cnblogs.comaggbug/1261502.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41551/" target="_blank">[新闻]Ubuntu获得Linux World Expo 2008 “最佳桌面方案”称号</a>]]></description></item><item><title>.Net Compact Framework 基础篇（6）-- Socket通信</title><link>http://www.cnblogs.com/appleseeker/archive/2008/08/05/1261369.html</link><dc:creator>AppleSeeker</dc:creator><author>AppleSeeker</author><pubDate>Tue, 05 Aug 2008 11:12:00 GMT</pubDate><guid>http://www.cnblogs.com/appleseeker/archive/2008/08/05/1261369.html</guid><description><![CDATA[摘要: .Net Compact Framework 基础篇（6）-- Socket通信&nbsp;&nbsp;<a href='http://www.cnblogs.com/appleseeker/archive/2008/08/05/1261369.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1261369.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41550/" target="_blank">[新闻]VMware加盟Linux基金会</a>]]></description></item><item><title>彈出窗口詳解【轉】</title><link>http://www.cnblogs.com/oec2003/archive/2008/08/05/1260576.html</link><dc:creator>oec2003</dc:creator><author>oec2003</author><pubDate>Mon, 04 Aug 2008 23:51:00 GMT</pubDate><guid>http://www.cnblogs.com/oec2003/archive/2008/08/05/1260576.html</guid><description><![CDATA[<p>一、 基本变化<br />
&lt;SCRIPT LANGUAGE="javascript"&gt; <br />
&lt;!-- <br />
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no') <br />
//写成一行 <br />
--&gt; <br />
&lt;/SCRIPT&gt;<br />
参数解释：<br />
window.open 弹出新窗口的命令； <br />
'page.html' 弹出窗口的文件名； <br />
'newwindow' 弹出窗口的名字（不是文件名），非必须，可用空''代替； <br />
100 窗口高度； <br />
width=400 窗口宽度； <br />
top=0 窗口距离屏幕上方的象素值； <br />
left=0 窗口距离屏幕左侧的象素值； <br />
toolbar=no 是否显示工具栏，yes为显示； <br />
menubar，scrollbars 表示菜单栏和滚动栏。 <br />
resizable=no 是否允许改变窗口大小，yes为允许； <br />
location=no 是否显示地址栏，yes为允许； <br />
status=no 是否显示状态栏内的信息（通常是文件已经打开），yes为允许；<br />
<br />
<br />
二、 弹启一个全屏窗口<br />
加入fullscreen<br />
&lt;SCRIPT LANGUAGE="javascript"&gt; <br />
&lt;!-- <br />
window.open ('page.html', 'newwindow', 'fullscreen') //全屏了，自然其他条件就都失效了 <br />
--&gt; <br />
&lt;/SCRIPT&gt;<br />
<br />
三、 打开一个和按F11所见到的一样的窗口<br />
加入channelmode<br />
&lt;SCRIPT LANGUAGE="javascript"&gt; <br />
&lt;!-- <br />
window.open ('page.html', 'newwindow', channelmode) <br />
--&gt; <br />
&lt;/SCRIPT&gt;<br />
<br />
四、 打开一个连标题栏都没有的窗口（无标题、最小、最大、以及关闭按钮）<br />
&lt;HTML&gt;&lt;HEAD&gt;<br />
&lt;META http-equiv=Content-Type content="text/html; charset=gb2312"&gt;<br />
&lt;script language="javascript"&gt;<br />
function unload()<br />
{<br />
var popUpSizeX=200; //窗口的宽度<br />
var popUpSizeY=166; //窗口的高度<br />
<br />
var popUpLocationX=2;//距离左边的距离 相当于 left<br />
var popUpLocationY=2;//距离顶端的距离 相当于 top<br />
<br />
// URL of the popUp<br />
var popUpURL="http://www.33d9.com/default.asp";; //打开页面的路径<br />
<br />
// ** 下面的就不要随便改了 ***<br />
splashWin = window.open("",'x','fullscreen=1, ,scrollbars=auto,resizable=1');<br />
splashWin.blur(); // Hide while updating<br />
window.focus();<br />
splashWin.resizeTo(popUpSizeX,popUpSizeY);<br />
splashWin.moveTo(popUpLocationX,popUpLocationY);<br />
splashWin.location=popUpURL;<br />
}<br />
// END <br />
unload();<br />
&lt;/script&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY&gt;&lt;/BODY&gt;&lt;/HTML&gt;<br />
<br />
看看，什么效果？ 如果把resizable 设为0 scrollbars = no 呢？<br />
<br />
五、 没有最大化按纽的窗口<br />
其实也就是象软件的&#8220;关于我们&#8221;的那个窗口一样，下面就是用对话框窗口来实现它。<br />
showModalDialog()以及showModelessDialog()<br />
<br />
1．用showModalDialog()<br />
&lt;html&gt;<br />
&lt;SCRIPT LANGUAGE="javascript"&gt;<br />
&lt;!--<br />
showModalDialog('http://www.fwcn.com','example04','dialogWidth:400px;dialogHeight:300px;dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes')<br />
//--&gt;<br />
&lt;/SCRIPT&gt;<br />
&lt;b&gt;<a href="http://www.fwcn.com/" target="_blank"><font face="宋体">http://www.fwcn.com/</font></a><font face="宋体">&lt;/b&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
2．用showModelessDialog()<br />
&lt;html&gt;<br />
&lt;SCRIPT LANGUAGE="javascript"&gt;<br />
&lt;!--<br />
showModelessDialog('http://www.fwcn.com','example05','dialogWidth:400px;dialogHeight:300px;dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes')<br />
//--&gt;<br />
&lt;/SCRIPT&gt;<br />
&lt;b&gt;</font><a href="http://www.fwcn.com/" target="_blank"><font face="宋体">http://www.fwcn.com/</font></a><font face="宋体">&lt;/b&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
至于showModalDialog()与showModelessDialog()的区别，在于showModalDialog()打开的窗口（简称模式窗口），置在父窗口上，必须关闭才能访问父窗口(建议尽量少用，以免招人反感)；showModelessDialog()（简称无模式窗口），打开后不必关闭也可访问父窗口打开的窗口。<br />
<br />
现在我将这里的一些参数说明一下。 <br />
dialogHeight: iHeight 设置对话框窗口的高度。 <br />
dialogWidth: iWidth 设置对话框窗口的宽度。 　　<br />
dialogLeft: iXPos 设置对话框窗口相对于桌面左上角的left位置。 <br />
dialogTop: iYPos 设置对话框窗口相对于桌面左上角的top位置。 <br />
center: {yes | no | 1 | 0 } 指定是否将对话框在桌面上居中，默认值是&#8220;yes&#8221;。<br />
help: {yes | no | 1 | 0 } 指定对话框窗口中是否显示上下文敏感的帮助图标。默认值是&#8220;yes&#8221;。 　　<br />
resizable: {yes | no | 1 | 0 } 指定是否对话框窗口大小可变。默认值是&#8220;no&#8221;。 <br />
status: {yes | no | 1 | 0 } 指定对话框窗口是否显示状态栏。对于非模式对话框窗口，默认值是&#8220;yes&#8221;；对于模式对话框窗口，默认值是 &#8220;no&#8221;。<br />
<br />
六、 弹出n 个窗口<br />
这很简单，只要执行n 次window.open()就行了，当然一定要给每个窗口起不同的名字，<br />
还有，设置一下left和top，避免重叠。<br />
<br />
七、 刷新之后就不再弹出窗口<br />
我们使用cookie来控制一下就可以了。<br />
首先，将如下代码加入主页面HTML的&lt;HEAD&gt;区：<br />
&lt;script&gt; <br />
function openwin(){ <br />
window.open("page.html","","width=200,200") <br />
} <br />
function get_cookie(Name) { <br />
var search = Name + "=" <br />
var returnvalue = ""; <br />
if (documents.cookie.length &gt; 0) { <br />
offset = documents.cookie.indexOf(search) <br />
if (offset != -1) { <br />
offset += search.length <br />
end = documents.cookie.indexOf(";", offset); <br />
if (end == -1) <br />
end = documents.cookie.length; <br />
returnvalue=unescape(documents.cookie.substring(offset, end)) <br />
} <br />
} <br />
return returnvalue; <br />
}<br />
function loadpopup(){ <br />
if (get_cookie('popped')==''){ <br />
openwin() <br />
documents.cookie="popped=yes" <br />
} <br />
}<br />
&lt;/script&gt;<br />
然后，用&lt;body onload="loadpopup()"&gt;（注意不是openwin而是loadpop啊！） 替换主页面中原有的&lt;BODY&gt;这一句即可。你可以试着刷新一下这个页面或重新进入该页面，窗口再也不会弹出了。<br />
<br />
八、 让弹出窗口适应里面图片的大小<br />
<br />
很多时候我们需要提供这样的功能给访问者：当访问者点击页面中的缩略图时，其对应的全尺寸图片将显示在一个新的弹出窗口中供访问者查看。<br />
<br />
　　实现此功能的最简单作法是用以下HTML代码创建一个图像链接：<br />
　　&lt;a href="fullsize.jpg" target="_blank"&gt;&lt;img src="small.jpg"&gt;&lt;/a&gt; <br />
　　其中&lt;a&gt;标记的href属性指定全尺寸图片的URL，target属性设置为_blank指定在新窗口中显示该图片；&lt;img&gt;标记的src属性指定缩略图的URL。<br />
<br />
　　如果我们想对显示全尺寸图片的窗口的外观进行某些控制（比如希望弹出窗口的高度、宽度能与全尺寸图片的大小匹配时），则可调用 window.open 方法，该方法接收三个参数，分别指定要打开文件的URL，窗口名及窗口特性，在窗口特性参数中可指定窗口的高度、宽度，是否显示菜单栏、工具栏等。以下代码将显示全尺寸图片在一个没有工具栏、地址栏、状态栏、菜单栏，宽、高分别为400、350的窗口中：<br />
&lt;a href="fullsize.jpg" onClick="window.open(this.href,'', 'height=350,width=400,toolbar=no,location=no,status=no,menubar=no');return false"&gt;&lt;img src="small.jpg"&gt;&lt;/a&gt;<br />
<br />
　　这里就提出了个问题，如果所有全尺寸图片都具有统一的大小（比如都是400x350），那么以上代码适用于所有的缩略图片链接（只是href属性指向的全尺寸图片文件不同）。但如果全尺寸图片的大小并不统一，还用以上代码则我们需要先取得每幅全尺寸图片的大小，然后在window.open方法的窗口特性参数中一一设置height和width为正确的值，在图片数量较多的情况下，这显然效率太低了。那么是否有一劳永逸的方法，即让弹出窗口能自动适应要显示图片的大小？通过研究，发现可以使用 DHTML 中的 Image 对象来达到我们的目的，Image 对象可动态装载指定的图片，通过读取其 width 和 height 属性即能获得装入图片的大小，以此来设置弹出窗口的大小，即可实现自适应图片大小的弹出窗口了。下面即是实现代码:<br />
&lt;script language="javascript" type="text/javascript"&gt;<br />
&lt;!--<br />
var imgObj;<br />
function checkImg(theURL,winName){<br />
// 对象是否已创建<br />
if (typeof(imgObj) == "object"){<br />
// 是否已取得了图像的高度和宽度<br />
if ((imgObj.width != 0) &amp;&amp; (imgObj.height != 0))<br />
// 根据取得的图像高度和宽度设置弹出窗口的高度与宽度，并打开该窗口<br />
// 其中的增量 20 和 30 是设置的窗口边框与图片间的间隔量<br />
OpenFullSizeWindow(theURL,winName, ",width=" + (imgObj.width+20) + ",height=" + (imgObj.height+30));<br />
else<br />
// 因为通过 Image 对象动态装载图片，不可能立即得到图片的宽度和高度，所以每隔100毫秒重复调用检查<br />
setTimeout("checkImg('" + theURL + "','" + winName + "')", 100)<br />
}<br />
}<br />
<br />
function OpenFullSizeWindow(theURL,winName,features) {<br />
var aNewWin, sBaseCmd;<br />
// 弹出窗口外观参数<br />
sBaseCmd = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,";<br />
// 调用是否来自 checkImg <br />
if (features == null || features == ""){<br />
// 创建图像对象<br />
imgObj = new Image();<br />
// 设置图像源<br />
imgObj.src = theURL;<br />
// 开始获取图像大小<br />
checkImg(theURL, winName)<br />
}<br />
else{<br />
// 打开窗口<br />
aNewWin = window.open(theURL,winName, sBaseCmd + features);<br />
// 聚焦窗口<br />
aNewWin.focus();<br />
}<br />
}<br />
//--&gt;<br />
&lt;/script&gt;<br />
<br />
　　使用时将上面的代码放在网页文档的&lt;head&gt;&lt;/head&gt;标记对中，然后在链接的点击事件中调用OpenFullSizeWindow函数，如&lt;a href="fullsize.jpg" onClick="OpenFullSizeWindow(this.href,'','');return false"&gt;&lt;img src="small.jpg"&gt;&lt;/a&gt;即可。<br />
以上代码在IE 5.x－6.0中测试通过。<br />
<br />
九、 比较灵活的HTA窗口<br />
<br />
我简单介绍一下，HTA的全名为HTML Application，翻译过来就是HTML应用程序，你只要简单的用.hta为扩展名保存HTML页面就算创建了一个HTA文件，下面我们就用HTA来编个窗口，将以下这段代码保存为.hta文件，然后再用浏览器打开，会发现什么？买个关子，自己去瞧瞧。 <br />
<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;TITLE&gt;</font><a href="http://www.fwcn.com/" target="_blank"><font face="宋体">http://www.fwcn.com/</font></a><font face="宋体">&lt;/TITLE&gt;<br />
&lt;HTA:APPLICATION ID="oHTA"<br />
APPLICATIONNAME="myApp"<br />
　　BORDER="thin"<br />
　　BORDERSTYLE="normal"<br />
　　CAPTION="yes"<br />
　　ICON="filename.ico"<br />
　　MAXIMIZEBUTTON="yes"<br />
　　MINIMIZEBUTTON="yes"<br />
　　SHOWINTASKBAR="no"<br />
　　INGLEINSTANCE="no"<br />
　　SYSMENU="yes"<br />
　　VERSION="1.0"<br />
　　WINDOWSTATE="normal" /&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY&gt;<br />
&lt;b&gt;</font><a href="http://www.fwcn.com/" target="_blank"><font face="宋体">http://www.fwcn.com/</font></a><font face="宋体">&lt;/b&gt;<br />
&lt;/BODY&gt;<br />
&lt;/HTML&gt; <br />
<br />
有人会发现上面这些代码与平时的html有点不同，多了HTA:APPLICATION标签，这就是关键之处，hta通过它来提供一系列面向应用程序的功能，接下来再讲一讲它的属性（我的头又在发胀） <br />
<br />
APPLICATIONNAME属性(applicationName)<br />
　　此属性为设置HTA的名称。<br />
　　BORDER属性(border)<br />
　　此属性为设置为HTA的窗口边框类型，默认值为 thick。<br />
　　它可以设为　thick 指定窗口为粗边框<br />
　　　　　　　　dialog window 指定窗口为对话框<br />
　　　　　　　　none 指定窗口无边框<br />
　　　　　　　　thin 指定窗口为窄边框 <br />
BORDERSTYLE属性(borderStyle)<br />
　　此属性为设置HTA窗口的边框格式，默认值为 normal。<br />
　　它可以设为 <br />
　　 normal 普通边框格式<br />
　　 complex 凹凸格式组合边框<br />
　　 raised 凸出的3D边框<br />
　　 static 3D边框格式<br />
　　 sunken 凹进的3D边框 <br />
CAPTION属性(caption)<br />
　　此属性为设置HTA窗口是否显示标题栏或标题，默认值为 yes。 <br />
ICON属性(icon)<br />
　　此属性为设置应用程序的图标。 <br />
MAXIMIZEBUTTON属性(maximizeButton)<br />
　　此属性为设置是否在HTA窗口中显示最大化按钮，默认值为 yes。 <br />
MINIMIZEBUTTON属性(minimizeButton)<br />
　　此属性为设置是否在HTA窗口中显示最小化按钮，默认值为 yes。 <br />
SHOWINTASKBAR属性(showInTaskBar)<br />
　　此属性为设置是否在任务栏中显示此应用程序，默认值为 yes。 <br />
SINGLEINSTANCE属性(singleInstance)<br />
　　此属性为设置是否此应用程序同时只能运行一次。次属性以APPLICATIONNAME属性作为标识，默认值为 no。 <br />
SYSMENU属性(sysMenu)<br />
　　此属性为设置是否在HTA窗口中显示系统菜单，默认值为 yes。 <br />
VERSION属性(version)<br />
　　此属性为设置应用程序的版本，默认值为空。 <br />
WINDOWSTATE属性(windowState)<br />
　　此属性为设置HTA窗口的初始大小，默认值为 normal。<br />
　　它可以设为 normal 默认大小<br />
　　　　　　　 minmize 最小化<br />
　　　　　　　 maximize 最大化 <br />
以上括号中的是在脚本引用的属性。在脚本中以上属性皆为只读属性。此外，在脚本中还可以使用commandLine属性来检索应用程序启动时的参数。<br />
在HTA中还可以继续使用html中的绝大多数标签、脚本等。</font></p>
<p><font face="宋体"></font>&nbsp;</p>
<p><font face="宋体">原文地址：<font face="Verdana"><a href="http://blog.csdn.net/zhangxuenian/archive/2005/10/20/510193.aspx">http://blog.csdn.net/zhangxuenian/archive/2005/10/20/510193.aspx</a></font></font></p>
<img src ="http://ShangHai.cnblogs.comaggbug/1260576.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41549/" target="_blank">[新闻]2008年8月7日IT博客精选</a>]]></description></item><item><title>详解for循环（各种用法）</title><link>http://www.cnblogs.com/birdshover/archive/2008/08/04/1260499.html</link><dc:creator>Birdshover</dc:creator><author>Birdshover</author><pubDate>Mon, 04 Aug 2008 15:05:00 GMT</pubDate><guid>http://www.cnblogs.com/birdshover/archive/2008/08/04/1260499.html</guid><description><![CDATA[<p>常见的for循环一般是一下代码这种结构：</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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;</span><span style="color: #800080">100</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br />
}</span></div>
<p>&nbsp;</p>
<p>或者递减的：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&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">100</span><span style="color: #000000">;&nbsp;i&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;;&nbsp;i</span><span style="color: #000000">--</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>但for当然不止这样一种用法。for的定义，()内的三段表达式，除了中间的必须产生布尔型，并未对其余两段有所限制，只要是表达式就可以了。在Lucene.Net中就有好几次这样的用法。例如：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(Token&nbsp;token&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input.Next(result);&nbsp;token&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;token&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input.Next(result))<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;token.TermText().Length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(len&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;min&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;token;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<p>&nbsp;</p>
<p>这个语句和下面代码的效果是一样的：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Token&nbsp;token;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">((token&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input.Next(result))&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;token.TermText().Length;<br />
&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;(len&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;min&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&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">return</span><span style="color: #000000">&nbsp;token;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>其实我认为在这两种循环中，第二种比第一种好理解一点。</p>
<p>&nbsp;</p>
<p>还有这种</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">75</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">--</span><span style="color: #000000">&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;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;jjrounds[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0x80000000</span><span style="color: #000000">;</span></div>
<p>&nbsp;</p>
<p>出了一个空表达式，呵呵。其实理解一下也很简单，和下面代码的效果一样：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><strike><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">75</span><span style="color: #000000">;&nbsp;i&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;i</span><span style="color: #000000">--</span></strike><strike><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;jjrounds[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0x80000000</span><span style="color: #000000">;</span></strike></div>
<p>&nbsp;</p>
<p><span style="color: #ff0000"><span style="color: #ff0000">朋友留言指正，修正以上代码为：</span></span></p>
<p><span style="color: #ff0000"><span style="color: #ff0000"><strike>for(i = 74;i &gt; 0;i--){</strike></span></span></p>
<p><span style="color: #ff0000"><span style="color: #ff0000"><strike>&nbsp;&nbsp;&nbsp;&nbsp; jjrounds[i]&nbsp;<span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0x80000000</span><span style="color: #000000">;</span></strike></span></span></p>
<p><span style="color: #ff0000"><span style="color: #ff0000"><strike>}</strike></span></span></p>
<p>&nbsp;</p>
<p>又弄错了，接受批评。应该换成下面的</p>
<p>for(i = 74; i &gt;= 0;i--)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; jjrounds[i]&nbsp;<span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0x80000000</span><span style="color: #000000">;</span></p>
<p>&nbsp;</p>
<p>空表达式，也是一个表达式啊，放在这里也不犯法。 </p>
<p>&nbsp;</p>
<p>嘿嘿，还有其他的表达式，比如：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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;length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">,&nbsp;pos</span><span style="color: #000000">++</span><span style="color: #000000">)</span></div>
<p>&nbsp;</p>
<p>这个应该不难理解，第三个表达式有两个，第一个当然也可以有两个</p>
<p>&nbsp;</p>
<p>比如<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 100, j = 100; i &gt; 0 ; i--,j++)</font></p>
<p><font face="Verdana">中间的表达式要想用两个就要加运算符了<font face="Verdana">for (int i = 100, j = 100; i &gt; 0 || j&gt;0 ; i--,j++)</font></font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana"><strong>这样就总结出三种for循环样式</strong></font></p>
<p><font face="Verdana"><strong>1、for(int i = 0;i &lt; 100;i++)&nbsp; //递减和递加的算一种</strong></p>
<p><strong>2、for(;true;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//有空表达式的</strong></p>
<p><strong>3、<font face="Verdana">for (int i = 100, j = 100; i &gt; 0 || j&gt;0 ; i--,j++)&nbsp;&nbsp; //有多表达式的</font></strong></p>
<p>&nbsp;</p>
<p>好像就这么多了。但是还有一种，我无法理解的表达式</p>
<p>for(;;)这是个 <strike>死循环 </strike><span style="color: #ff0000">无限循环（没有跳出语句，才能成为死循环）</span>，汗！！！庐山瀑布汗啊，反正我理解不了。</p>
<p>&nbsp;</p>
<p>嘿嘿，理解上面的表达式，基本上看别人的代码就不会摸不着头脑了。那是不是真的没有了呢？</p>
<p>来试试这种</p>
<p><font face="Verdana">&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(Act();&nbsp;;&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Act()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>哈哈，真是彻底被打败了。注意：没见过有这么用的，纯粹是实验，应用产生的后果我不负责啊。</p>
<p>&nbsp;</p>
<p>放上三个方法爽爽：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(Act1();&nbsp;Act2();&nbsp;Act3())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Act1()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Act2()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Act3()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>当然，你非要用个委托，我也没意见：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">delegate</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Bind();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bind&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Bind(Act1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(b();&nbsp;Act2();&nbsp;Act3())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Act1()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Act2()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Act3()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>我考事件也出来了：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">delegate</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Bind();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">event</span><span style="color: #000000">&nbsp;Bind&nbsp;bindEvent;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bind&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Bind(Act1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bindEvent&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Bind(Program_bindEvent);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(b();&nbsp;Act2();&nbsp;bindEvent())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Program_bindEvent()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Act1()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Act2()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Act3()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>看出来了，只要是表达式，就能使用啊！除了第二个表达式必须为空，或者布尔值外，其他两个基本没什么限制。第二表达式为空则是死循环。</p>
<p>&nbsp;</p>
<p>嘿嘿，无聊整出来的，欢迎大家拍砖！知道其他用法的朋友分享一下。</p>
<p>&nbsp;</p>
<p>2008年8月4日 by yurow @ <font face="Verdana">http://www.cnblogs.com/birdshover/</font></p>
<p>&nbsp;</p>
<p></font></font>&nbsp;</p>
<img src ="http://ShangHai.cnblogs.comaggbug/1260499.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41547/" target="_blank">[新闻]雅虎任命伊坎加入董事会 原董事科蒂克辞职</a>]]></description></item><item><title>.Net Compact Framework 基础篇（5）-- Exception</title><link>http://www.cnblogs.com/appleseeker/archive/2008/08/04/1260399.html</link><dc:creator>AppleSeeker</dc:creator><author>AppleSeeker</author><pubDate>Mon, 04 Aug 2008 13:08:00 GMT</pubDate><guid>http://www.cnblogs.com/appleseeker/archive/2008/08/04/1260399.html</guid><description><![CDATA[摘要: .Net Compact Framework 基础篇（5）-- Exception&nbsp;&nbsp;<a href='http://www.cnblogs.com/appleseeker/archive/2008/08/04/1260399.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1260399.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41546/" target="_blank">[新闻]盖茨今日抵京将出席奥运开幕式 观战乒乓球</a>]]></description></item><item><title>C#小测试（二）：嵌套子类带来的困惑</title><link>http://www.cnblogs.com/anderslly/archive/2008/08/04/an-inheritance-puzzle.html</link><dc:creator>Anders Cui</dc:creator><author>Anders Cui</author><pubDate>Mon, 04 Aug 2008 03:53:00 GMT</pubDate><guid>http://www.cnblogs.com/anderslly/archive/2008/08/04/an-inheritance-puzzle.html</guid><description><![CDATA[摘要: 如果我们的代码中同时出现泛型、继承、嵌套类这三种语言元素，那么在根据名称解析类型的时候可能就会有歧义了。本文中的问题及其结论是非常有意思的，其分析过程也非常的绕，大家一起来讨论下吧:)&nbsp;&nbsp;<a href='http://www.cnblogs.com/anderslly/archive/2008/08/04/an-inheritance-puzzle.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1247149.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41545/" target="_blank">[新闻]传联想欲携手IBM推“无微软软件”个人电脑</a>]]></description></item><item><title>F# 20分钟快速上手（一）</title><link>http://www.cnblogs.com/anderslly/archive/2008/08/03/fs-in-20-minutes.html</link><dc:creator>Anders Cui</dc:creator><author>Anders Cui</author><pubDate>Sun, 03 Aug 2008 06:50:00 GMT</pubDate><guid>http://www.cnblogs.com/anderslly/archive/2008/08/03/fs-in-20-minutes.html</guid><description><![CDATA[摘要: 从Allen Lee的《从C# 3.0到F#》一文开始，感觉园子里F#正在升温。Chris Smith写了一个F#的小系列，这里翻译出来与大家分享。在本文从零开始编写我们的第一个F#程序。&nbsp;&nbsp;<a href='http://www.cnblogs.com/anderslly/archive/2008/08/03/fs-in-20-minutes.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1259218.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41543/" target="_blank">[新闻]Microsoft SQL Server 2008 正式发布</a>]]></description></item><item><title>脱离SSIS强大的可视化编辑功能,后台C#实现包的创建-爽一把</title><link>http://www.cnblogs.com/xuanfeng/archive/2008/08/03/1259155.html</link><dc:creator>xuanfeng</dc:creator><author>xuanfeng</author><pubDate>Sun, 03 Aug 2008 04:57:00 GMT</pubDate><guid>http://www.cnblogs.com/xuanfeng/archive/2008/08/03/1259155.html</guid><description><![CDATA[摘要: 1.目标：
 创建父包
 创建子包
 保存包
2.目标具体实现技术分解：
 程序集引用
 创建包
 创建包的变量
 创建包任务
 创建包连接器
 设置属性由表达式生成
 设置变量由父包传递（设置包配置）
3.目标实现类关系图与详细信息
4.目标实现代码
5.目标实现测试代码
&nbsp;&nbsp;<a href='http://www.cnblogs.com/xuanfeng/archive/2008/08/03/1259155.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1259155.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41544/" target="_blank">[新闻]百度联盟今日推出按效果付费CPA广告平台</a>]]></description></item><item><title>中文分词自动化探索</title><link>http://www.cnblogs.com/birdshover/archive/2008/08/03/1259070.html</link><dc:creator>Birdshover</dc:creator><author>Birdshover</author><pubDate>Sat, 02 Aug 2008 19:33:00 GMT</pubDate><guid>http://www.cnblogs.com/birdshover/archive/2008/08/03/1259070.html</guid><description><![CDATA[<p>在使用Lucene时大家肯能也都碰到了个有趣的现象，用用StandardAnalyzer分词器和QueryParser类直接对查询语句进行解析，得到的结果，如果搜索语句是"搜索引擎",那么转换为Lucene的查询表达式就是"+title:搜 索 引 擎"，能搜索到的结果一定是索引文档中&#8220;搜索引擎&#8221;这四个字连在一起，或者是中间只能包含符号。</p>
<p>&nbsp;</p>
<p>比如，搜索表达式是&nbsp; +title:搜 索 引 擎</p>
<p>&nbsp;</p>
<p><strong>那么一下结果将被命中：</strong></p>
<p>这是一个搜索引擎.</p>
<p>google搜索引擎是很不错的工具。</p>
<p>搜索.引擎</p>
<p>&nbsp;</p>
<p><strong>而以下的结果将不能被命中：</strong></p>
<p>这是一个提供搜索服务的引擎。</p>
<p>引擎。搜索的引擎</p>
<p>&nbsp;</p>
<p>而我们刚开始做搜索引擎实践的时候，开始的时候一般都用过StandardAnalyzer。而后，开始使用词库的中文分词，然后...怎么样就不知道了，呵呵。</p>
<p>&nbsp;</p>
<p>而词库分词后的表达式变调了。比如词库里有"搜索""引擎"这两个词，那么解析后的表达式就变为 +title:搜索 引擎,但是，搜索体验也有了质的提升。比如原先，你输入&#8220;搜&#8221;，就可以搜到带&#8220;搜&#8221;的所有记录。而现在不一样了，由于&#8220;搜索&#8221; 成了一个单元，相当于变成了一体了，因此用&#8220;搜&#8221;一个字肯定是搜不到的。就好象 </p>
<p>string index_token = "搜索";</p>
<p>string search_token = "搜";</p>
<p>index_token 和 search_token 肯定是不相等的。</p>
<p>&nbsp;</p>
<p>但是用词库的分词，准确性暂且不说，词库的更新，索引就必须跟着改变。这种方式无疑是成本高昂的。那么StandardAnalyzer分词的优点还是有的。是否可以结合这两种分词的优点呢？</p>
<p>&nbsp;</p>
<p>假如，建立索引都是按照单字索引。而搜索时按词典分词。那肯定也搜索不出来。但是换个方法，用词典分词器把词分好，比如，&#8220;搜索引擎&#8221;变成了&#8220;搜索 引擎&#8221;。然后这样构建表达式：</p>
<p>QueryParser parser = new QueryParser("title", new Lucene.Net.Analysis.Standard.StandardAnalyzer());</p>
<p>BooleanQuery bquery = new BooleanQuery();</p>
<p>Query query1 = parser.Parse(&#8220;搜索&#8221;);</p>
<p>Query query2 = parser.Parse(&#8220;引擎&#8221;);</p>
<p>bquery.Add(query1 , BooleanClause.Occur.MUST);</p>
<p>bquery.Add(query2 , BooleanClause.Occur.MUST);</p>
<p>Hits hits = searcher.Search(bquery);</p>
<p>&nbsp;</p>
<p>表达式就变成了</p>
<p>+title:搜 索 +title:引 擎</p>
<p>现在又可以搜索到了。</p>
<p>&nbsp;</p>
<p>这种方式的优势就很明显了。而这种也是基于词库的，而维护词库的成本也是很高昂的。但是因为现在不用再重建索引，就可以做程序自动在索引和用户输入信息中自动按频率提取分词，而这种词库的变动无疑非常得频繁。但是现在不用重建索引了还怕什么呢？</p>
<p>&nbsp;</p>
<p>注：本文内容只经过较小的实验，并未使用过。</p>
<p>&nbsp;</p>
<p>by yurow&nbsp;@&nbsp; <a href="http://www.cnblogs.com/birdshover/">http://www.cnblogs.com/birdshover/</a>&nbsp; 2008年8月3日</p>
<img src ="http://ShangHai.cnblogs.comaggbug/1259070.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41532/" target="_blank">[新闻]设计浏览器皮肤 Opera用户打造独特的情人节礼物</a>]]></description></item><item><title>ITIL实施中骆驼与兔子的区别</title><link>http://www.cnblogs.com/cancanwyq/articles/1258818.html</link><dc:creator>苏康胜</dc:creator><author>苏康胜</author><pubDate>Sat, 02 Aug 2008 07:10:00 GMT</pubDate><guid>http://www.cnblogs.com/cancanwyq/articles/1258818.html</guid><description><![CDATA[&nbsp;
<p align="center"><strong>ITIL</strong><strong><span style="font-family: 宋体">实施中骆驼与兔子的区别</span></strong></p>
<p style="margin-left: 21pt">&nbsp;</p>
<p style="margin-left: 21pt"><span style="font-family: 宋体">&nbsp;&nbsp;&nbsp; 记得有一次看《对话》，一位名人说过，西方跨国企业是骆驼，中国的企业是兔子。</span></p>
<p style="margin-left: 21pt; text-indent: 22pt"><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">这个概念已经在中国流行起来了，很多</span><span style="font-size: 11pt">IT</span><span style="font-size: 11pt; font-family: 宋体">服务的企业开始热忠于</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">的管理思想。</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">管理思想是很了不起的，从人、流程、效率、监督、分析等各个角度为</span><span style="font-size: 11pt">IT</span><span style="font-size: 11pt; font-family: 宋体">服务管理者理清了思路。</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">思想已经成功应用于西方一些跨国企业。如</span><span style="font-size: 11pt">IBM</span><span style="font-size: 11pt; font-family: 宋体">、</span><span style="font-size: 11pt">HP&#8230;&#8230;</span></p>
<p style="margin-left: 21pt; text-indent: 22pt"><span style="font-size: 11pt; font-family: 宋体">可是在中国实施</span><span style="font-size: 11pt">ITIL </span><span style="font-size: 11pt; font-family: 宋体">我们能按照管理骆驼的方法来管理兔子吗？</span></p>
<p style="margin-left: 21pt; text-indent: 22pt"><span style="font-size: 11pt; font-family: 宋体">骆驼是足够大的，即使不吃不喝一段时间，也可以走过沙漠，可是兔子呢，必须边跑的时候边找吃的和喝的，否则就会饿死。兔子不可能因为像管理骆驼一样的管理就可以达到骆驼一样的骨架的。</span></p>
<p style="margin-left: 21pt; text-indent: 22pt"><span style="font-size: 11pt; font-family: 宋体">但兔子比骆驼灵活，碰到机会拔腿就上，可以靠速度去获得利润和胜利。而骆驼靠的是充足的储备，可以用&#8220;亏损&#8221;去建立&#8220;</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">标准流程&#8221;而带来的品牌效应。</span></p>
<p style="margin-left: 21pt; text-indent: 22pt"><span style="font-size: 11pt; font-family: 宋体">这样的形容来区别中国企业跟国外企业现阶段状况是非常合适的，中国企业目前最需要的是效率和应变能力，管理依然重要，但目标的侧重点应该是不同的。</span></p>
<p style="margin-left: 21pt; text-indent: 22pt"><span style="font-size: 11pt; font-family: 宋体">因此留给大家实施</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">时的几个额外的思考是必要的。</span></p>
<p style="margin-left: 61pt; text-indent: -18pt"><span style="font-size: 11pt">1、 </span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">的标准流程是否真的适合企业目前的状况？可行性如何？企业资源是否支撑标准流程的执行？</span></p>
<p style="margin-left: 61pt; text-indent: -18pt"><span style="font-size: 11pt">2、 </span><span style="font-size: 11pt; font-family: 宋体">如何参考</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">标准的流程思想来设计企业现阶段合理的流程并加强执行力？</span></p>
<p style="margin-left: 61pt; text-indent: -18pt"><span style="font-size: 11pt">3、 </span><span style="font-size: 11pt; font-family: 宋体">如何通过综合分析逐步完善各种处理流程，提升管理特性？</span></p>
<p style="margin-left: 61pt; text-indent: -18pt"><span style="font-size: 11pt">4、 </span><span style="font-size: 11pt; font-family: 宋体">企业需要通过</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">真正解决的问题有哪些？</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">帮助企业优化了哪些</span><span style="font-size: 11pt">KPI</span><span style="font-size: 11pt; font-family: 宋体">指标？</span></p>
<p style="margin-left: 61pt; text-indent: -18pt"><span style="font-size: 11pt">5、 </span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">管理思想如何在企业发展过程中不断完善和指导？</span></p>
<p style="margin-left: 61pt"><span style="font-size: 11pt; font-family: 宋体">。。。。。。</span></p>
<p style="margin-left: 61pt">&nbsp;</p>
<p style="margin-left: 21pt"><span style="font-size: 11pt; font-family: 宋体">大部分中国企业现阶段最需要的是效率和非常强的应变能力，因此选择</span><span style="font-size: 11pt">ITIL</span><span style="font-size: 11pt; font-family: 宋体">管理工具进行实施的时候，工作流引擎将会是一个非常重要的因素。</span></p>
<p style="margin-left: 61pt; text-indent: 22pt">&nbsp;</p>
<p style="margin-left: 44.25pt; text-indent: 21.75pt" align="left"><span style="font-size: 11pt">E8.HelpDesk</span><span style="font-size: 11pt; font-family: 宋体">帮助企业做好各个阶段的</span><span style="font-size: 11pt">IT</span><span style="font-size: 11pt; font-family: 宋体">服务管理</span><span style="font-family: 宋体">，</span><span style="font-size: 11pt; font-family: 宋体">欢迎访问：</span><span style="font-size: 11pt"> <a href="http://www.feifanit.com.cn/">http://www.feifanit.com.cn/</a></span></p>
<img src ="http://ShangHai.cnblogs.comaggbug/1258818.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41536/" target="_blank">[新闻]美厂商暴雪意欲发展游戏帐号共通计划</a>]]></description></item><item><title>通过Cache机制实现通用的配置管理模块(包含CacheHelper.cs全部源码)</title><link>http://www.cnblogs.com/cancanwyq/articles/1258605.html</link><dc:creator>苏康胜</dc:creator><author>苏康胜</author><pubDate>Sat, 02 Aug 2008 01:45:00 GMT</pubDate><guid>http://www.cnblogs.com/cancanwyq/articles/1258605.html</guid><description><![CDATA[摘要:  通过Cache机制实现通用的配置管理模块 .Net Web应用程序提供了很强大的 Web.Config功能，我们很多的系统可能已经习惯在Web.Config中进行配置，可是使用Web.Config进行一些配置，会有一些不太顺畅的特性，比如：修改Web.Config 后，Web应用程序会出现错误页面并且需要重新登录，Web.Config配置过程不是很方便，即使通过安装包进行Web.Config的设&nbsp;&nbsp;<a href='http://www.cnblogs.com/cancanwyq/articles/1258605.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1258605.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41522/" target="_blank">[新闻]谷歌与开源组织合作 在Linux整合大量迷你软件</a>]]></description></item><item><title>【原创】C#调用存储过程</title><link>http://www.cnblogs.com/mgod/archive/2008/08/02/1258585.html</link><dc:creator>赤色火焰</dc:creator><author>赤色火焰</author><pubDate>Sat, 02 Aug 2008 00:27:00 GMT</pubDate><guid>http://www.cnblogs.com/mgod/archive/2008/08/02/1258585.html</guid><description><![CDATA[摘要: 今天用了用存储过程，写了几个简单的例子&nbsp;&nbsp;<a href='http://www.cnblogs.com/mgod/archive/2008/08/02/1258585.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1258585.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41517/" target="_blank">[新闻]Facebook开辟中国市场 SNS或遭遇版权官司</a>]]></description></item><item><title>[Podcast推荐]--ASP.NET &amp; .NET</title><link>http://www.cnblogs.com/appleseeker/archive/2008/08/01/1258459.html</link><dc:creator>AppleSeeker</dc:creator><author>AppleSeeker</author><pubDate>Fri, 01 Aug 2008 13:16:00 GMT</pubDate><guid>http://www.cnblogs.com/appleseeker/archive/2008/08/01/1258459.html</guid><description><![CDATA[<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">不知道大家的ipod平时都听写什么呢？听歌曲？看片子？听广播？打游戏？</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">有没有想过听Podcast呢？相信喜欢Podcast的朋友一定收听过博客园的Podcast吧。可惜出了2段就没了。</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">在回家路上，或者等人途中，来听听大牛们的技术讲解，不也是学习嘛。</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">推荐几个Podcast，用于学习ASP.NET和.NET</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">肯定能订阅成功哦。</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">ASP.NET Podcast：</span></span></span></p>
<p><a href="http://www.scalabledevelopment.com/ftp/ASPNETPodcast-MP3.xml"><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">http://www.scalabledevelopment.com/ftp/ASPNETPodcast-MP3.xml</span></span></span></a><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">（mp3）<br />
</span></span></span><a href="http://www.scalabledevelopment.com/ftp/ASPNETPodcast-MP4.xml"><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">http://www.scalabledevelopment.com/ftp/ASPNETPodcast-MP4.xml</span></span></span></a><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">（mp4）</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">Polymorphic Podcast：</span></span></span></p>
<p><a href="http://polymorphicpodcast.com/podcast/feed/"><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">http://polymorphicpodcast.com/podcast/feed/</span></span></span></a><br />
<span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">Jess Chadwick讲述ASP.NET AJAX/ASP.NET MVC</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">Hanselminutes<br />
</span></span></span><a href="http://feeds.feedburner.com/Hanselminutes"><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">http://feeds.feedburner.com/Hanselminutes</span></span></span></a><br />
<span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">Scott Hanselman讲述ASP.Net</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">.Net Rocks:<br />
</span></span></span><a href="http://feeds.feedburner.com/netRocksFullMp3Downloads"><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">http://feeds.feedburner.com/netRocksFullMp3Downloads</span></span></span></a></p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">Charles Stacy Harris主讲.Net技术</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">其实这些资源在</span></span></span><a href="http://www.asp.net/"><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">www.asp.net</span></span></span></a><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">网站上都有，直接给大家链接，方便哈，虽然都是英文，但可以练练哈。</span></span></span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt"><img border="0" alt="" src="http://www.cnblogs.com/images/cnblogs_com/appleseeker/PodCast.JPG" width="1077" height="104" /></span></span></span></p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"></span></span>&nbsp;</p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">Podcast订阅：</span></span></span></p>
<p><span style="font-family: Verdana"><span style="font-family: Arial"><span style="font-size: 10pt">&nbsp;</p>
<p>第一步：打开itunes如图鼠标选择高级&gt;订购Pocast</p>
<p><img src="http://ifire.cn/pix/stuff/itunes01.gif"  alt="" /></p>
<p>第二步：点击之后跳出这个输入种子文件的框，在里面输入你要预定的Podcast种子文件路径：</p>
<p><img src="http://ifire.cn/pix/stuff/itunes02.gif"  alt="" /></p>
<p>第三步：刚才点击确定之后，您预定的节目就会自动更新到您的电脑中，不过itunes应该只默认更新最新的一期节目</p>
<p><img src="http://ifire.cn/pix/stuff/itunes03.gif"  alt="" /></p>
<p>第四步：如果您想下载所有的节目，您可以在偏好设置中设置，如图：</p>
<p><img src="http://ifire.cn/pix/stuff/itunes04.gif"  alt="" /></p>
<p><img src="http://ifire.cn/pix/stuff/itunes05.gif"  alt="" /></p>
<p>这就明白了吧！</span></span></span></p>
<img src ="http://ShangHai.cnblogs.comaggbug/1258459.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41516/" target="_blank">[新闻]Skype最终登陆Windows Mobile 6.1系统</a>]]></description></item><item><title>AutoCAD系统变量: OSMODE --设置“对象捕捉”的运行模式</title><link>http://www.cnblogs.com/wf225/archive/2008/08/01/1258181.html</link><dc:creator>无锋不起浪</dc:creator><author>无锋不起浪</author><pubDate>Fri, 01 Aug 2008 06:40:00 GMT</pubDate><guid>http://www.cnblogs.com/wf225/archive/2008/08/01/1258181.html</guid><description><![CDATA[摘要: AutoCAD系统变量: OSMODE --设置“对象捕捉”的运行模式&nbsp;&nbsp;<a href='http://www.cnblogs.com/wf225/archive/2008/08/01/1258181.html'>阅读全文</a><img src ="http://ShangHai.cnblogs.comaggbug/1258181.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41514/" target="_blank">[新闻]Google企业搜索系统升级</a>]]></description></item><item><title>话说List,Dictionary初始化大小</title><link>http://www.cnblogs.com/birdshover/archive/2008/07/31/1256915.html</link><dc:creator>Birdshover</dc:creator><author>Birdshover</author><pubDate>Wed, 30 Jul 2008 16:59:00 GMT</pubDate><guid>http://www.cnblogs.com/birdshover/archive/2008/07/31/1256915.html</guid><description><![CDATA[<p><strong>一、List&lt;T&gt;</strong></p>
<p>List&lt;T&gt;也就是泛型集合。看它的大小分配方式，要看两段代码</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">1</span>&nbsp;<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;EnsureCapacity(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;min)&nbsp;{&nbsp;<br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_items.Length&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;min)&nbsp;{<br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="color: #ff0000">int&nbsp;newCapacity&nbsp;=&nbsp;_items.Length&nbsp;==&nbsp;0?&nbsp;_defaultCapacity&nbsp;:&nbsp;_items.Length&nbsp;*&nbsp;2;<br />
</span></span><span style="color: #008080">4</span>&nbsp;<span style="color: #000000">&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;(newCapacity&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;min)&nbsp;newCapacity&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;min;<br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">Capacity&nbsp;=&nbsp;newCapacity;&nbsp;<br />
</span></span><span style="color: #008080">6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;Capacity&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">get</span><span style="color: #000000">&nbsp;{&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;_items.Length;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;{<br />
&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;(<span style="color: #ff0000">value&nbsp;!=&nbsp;_items.Length</span></span><span style="color: #000000">)&nbsp;{<br />
&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;(value&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;_size)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.value,&nbsp;ExceptionResource.ArgumentOutOfRange_SmallCapacity);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;<br />
&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;(value&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;{<br />
&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 style="color: #ff0000">T[]&nbsp;newItems&nbsp;=&nbsp;new&nbsp;T[value];&nbsp;<br />
</span></span><span style="color: #000000">&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: #0000ff">if</span><span style="color: #000000">&nbsp;(_size&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;{<br />
&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;Array.Copy(_items,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;newItems,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;_size);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_items&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;newItems;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&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">else</span><span style="color: #000000">&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_items&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;_emptyArray;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>系统默认分配的增长量是</p>
<p>private const int _defaultCapacity = 4; </p>
<p>&nbsp;</p>
<p>所以，假设不设置List的默认大小。即默认为0，那么在类初始化的时候，数组分配大小是0.如下代码</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;T[]&nbsp;&nbsp;_emptyArray&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;T[</span><span style="color: #800080">0</span><span style="color: #000000">];<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Constructs&nbsp;a&nbsp;List.&nbsp;The&nbsp;list&nbsp;is&nbsp;initially&nbsp;empty&nbsp;and&nbsp;has&nbsp;a&nbsp;capacity&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;of&nbsp;zero.&nbsp;Upon&nbsp;adding&nbsp;the&nbsp;first&nbsp;element&nbsp;to&nbsp;the&nbsp;list&nbsp;the&nbsp;capacity&nbsp;is<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;increased&nbsp;to&nbsp;16,&nbsp;and&nbsp;then&nbsp;increased&nbsp;in&nbsp;multiples&nbsp;of&nbsp;two&nbsp;as&nbsp;required.&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_items&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;_emptyArray;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>那么当第一次调用Add方法的时候，系统就会为List分配4个位置的大小。而超过4个则分配8个，超过8个就分配16个。也就是说，假设你添加了2049个值进去，那么实际分配的空间大小就是4096。分配5万个进去，就会分配65536个。额外多出来不少。<span style="color: #ff0000"><span style="color: #ff0000">而假如能自己判断出要添加的大概数量的话，那最好是预先分配大小了。预先分配大小，分配多少就是多少个。预先分配的大小一定要大于等于加进去的元素数量。否则，说不定比不分配更加糟糕。</span></span></p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;capacity)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(capacity&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)&nbsp;ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity,&nbsp;ExceptionResource.ArgumentOutOfRange_SmallCapacity);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_items&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;T[capacity];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>&nbsp;二、Dictionary&lt;TKey,TValue&gt;</strong></p>
<p>要是用List分配空间的方式来理解<strong>Dictionary</strong>，那就又错了。<strong>Dictionary</strong>有它自己的分配方式。</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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;Initialize(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;capacity)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="color: #ff0000">int&nbsp;size&nbsp;=&nbsp;HashHelpers.GetPrime(capacity);<br />
</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buckets&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[size];<br />
&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;buckets.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;buckets[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entries&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Entry[size];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;freeList&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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;Resize()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="color: #ff0000">int&nbsp;newSize&nbsp;=&nbsp;HashHelpers.GetPrime(count&nbsp;*&nbsp;2);<br />
</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;newBuckets&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[newSize];<br />
&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;newBuckets.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;newBuckets[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entry[]&nbsp;newEntries&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Entry[newSize];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array.Copy(entries,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;newEntries,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;count);&nbsp;<br />
&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;count;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;bucket&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;newEntries[i].hashCode&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;newSize;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newEntries[i].next&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;newBuckets[bucket];&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newBuckets[bucket]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buckets&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;newBuckets;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entries&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;newEntries;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ReliabilityContract(Consistency.WillNotCorruptState,&nbsp;Cer.Success)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">internal</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;GetPrime(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;min)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(min&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throw</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ArgumentException(Environment.GetResourceString(</span><span style="color: #800000">"</span><span style="color: #800000">Arg_HTCapacityOverflow</span><span style="color: #800000">"</span><span style="color: #000000">));<br />
&nbsp;<br />
&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;primes.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;prime&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;primes[i];&nbsp;<br />
&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;(<span style="color: #ff0000">prime&nbsp;&gt;=&nbsp;min</span></span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;prime;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">outside&nbsp;of&nbsp;our&nbsp;predefined&nbsp;table.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">compute&nbsp;the&nbsp;hard&nbsp;way.</span><span style="color: #008000"><br />
</span><span style="color: #000000">&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;(min&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">);&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;Int32.MaxValue;i</span><span style="color: #000000">+=</span><span style="color: #800080">2</span><span style="color: #000000">)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&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;(IsPrime(i))<br />
&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">return</span><span style="color: #000000">&nbsp;i;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;min;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>假设未设置大小，那么它会从下面的数据中取得。</p>
<p>3, 7, 11, 17, 23, 29, 37, 47, 59, 71, 89, 107, 131, 163, 197, 239, 293, 353, 431, 521, 631, 761, 919, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1103, 1327, 1597, 1931, 2333, 2801, 3371, 4049, 4861, 5839, 7013, 8419, 10103, 12143, 14591, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17519, 21023, 25229, 30293, 36353, 43627, 52361, 62851, 75431, 90523, 108631, 130363, 156437,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 187751, 225307, 270371, 324449, 389357, 467237, 560689, 672827, 807403, 968897, 1162687, 1395263, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1674319, 2009191, 2411033, 2893249, 3471899, 4166287, 4999559, 5999471, 7199369</p>
<p>取得的时候有一个规则。比如未设置大小，第一次添加的时候，一定是取3个大小为初始值了。而到4个的时候，它会先取3的倍数6，而6小于7，那么它就取7。当第8个的时候，因为7的倍数是14，比11大，所以它就取17了。<strike>所以，假设存入50000个左右的key，到第467237 + 1个的时候，根据计算 75431 &lt; 43627* 2 = 87254 &lt; 90523，所以，它会为你分配90523个键值。浪费了吧，呵呵，而且在分配完成后，它会用循环的方式重新设置初始值。浪费几万次循环，实在可耻。</strike></p>
<p><strike>&nbsp;</strike></p>
<p><span style="color: #ff0000"><span style="color: #ff0000"><strike>所以，如果判定存入的key的数量为50000左右的话，那么直接设置50000，它会取52361个，如果觉得不保险，那么设置成60000，就会分配62851。</strike></span></span></p>
<p><span style="color: #ff0000"><span style="color: #ff0000"><strike></strike></span></span>&nbsp;</p>
<p><span style="color: #ff0000"><span style="color: #ff0000"><span style="color: #0000ff"><span style="color: #0000ff">sorry,上面计算有误，当5万个的时候，先取3，再取7，接着是17，37，89，197，431，919，1931，4049，8419，17519，36353，75431。意思是不设置初始大小的情况，第一个必然取3，再从上面的表中取比这个数的两倍大的最小值，依次类推。那么，存取5万个键值对，实际分配大小是75431个空间。而预先设置大小，它会在上表中找比设置大小大的数的最小值。所以存5万个，设置5万初始大小的话，那么实际分配52361个空间，觉得不保险，设置6万，则分配62851个空间。(2008年7月31日 9:07:39 修正。)</span></span></span></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2008年7月31日 by yurow @<a href="http://www.cnblogs.com/birdshover/">http://www.cnblogs.com/birdshover/</a></p>
<img src ="http://ShangHai.cnblogs.comaggbug/1256915.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41513/" target="_blank">[新闻]Firefox 3.1 Beta 1本月19日发布</a>]]></description></item><item><title>数据结构，网络结构示意图的距离问题</title><link>http://www.cnblogs.com/birdshover/archive/2008/07/30/1256824.html</link><dc:creator>Birdshover</dc:creator><author>Birdshover</author><pubDate>Wed, 30 Jul 2008 13:58:00 GMT</pubDate><guid>http://www.cnblogs.com/birdshover/archive/2008/07/30/1256824.html</guid><description><![CDATA[<p>我手上的数据结构书是清华大学出版社出版的01年3月第一版，04年1月第六次印刷，作者是殷人昆。</p>
<p>&nbsp;</p>
<p>第四页图1.5（b）网络结构。书上描述边的权值代表两个城市的距离。</p>
<p>&nbsp;</p>
<p>而图上 1，6，5点组成一个三角形，但是边的距离分别是 11，21，33。看来33那天路是弯的才行。而4，5，6点组成的三角形也是同样问题，边分别是33，14，18。</p>
<img src ="http://ShangHai.cnblogs.comaggbug/1256824.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41512/" target="_blank">[新闻]一位Google员工的求婚2.0</a>]]></description></item></channel></rss>