﻿<?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>博客园-Santé</title><link>http://www.cnblogs.com/smalldust/</link><description>为明天干杯！</description><language>zh-cn</language><lastBuildDate>Tue, 14 Oct 2008 13:21:31 GMT</lastBuildDate><pubDate>Tue, 14 Oct 2008 13:21:31 GMT</pubDate><ttl>60</ttl><item><title>NTT大规模网络故障</title><link>http://www.cnblogs.com/smalldust/archive/2007/05/17/750761.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Thu, 17 May 2007 15:28:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2007/05/17/750761.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/750761.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2007/05/17/750761.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/750761.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/750761.html</trackback:ping><description><![CDATA[5月15日晚上约18点44分，NTT东日本营业区域的14个都道县内，所有NTT的Flets光纤网络、以及使用了光纤网络的IP电话突然之间都不能使用了。在大规模使用IP电话代替传统电话的日本，这是非常严重的事故。将近300万网络用户和60万的IP电话用户受到影响。经过NTT公司的紧急修复，终于在午夜1点35分完全恢复了网络使用，整个过程历时约7小时。<br><br>NTT立刻对事故原因进行了调查。根据5月16日发布会议上的消息，事故原因起始于设置在东京的藏前的一台路由器。具体情况是，15日晚，该路由器发生故障，于是工作人员用备用路由器将其换下。这一设备交换导致网络结构改变，因此网络上的其余4000多台路由器都会更新路由表。到这里为止都是正常的维护步骤。<br><br>但是，这一路由表的更新却因此了重大的后果——大规模路由更新导致路由器达到了其处理能力的上限，于是整个IP网络就瘫痪在来不及处理的拥塞之中了。NTT在发现这一问题之后立即通过重新启动路由器等方法进行恢复，终于在午夜1点半左右全部恢复。<br><br>为避免今后再次发生类似问题，NTT公司公布了如下对策：一是减少路由器的路由信息以求降低负载，把每台路由器管理的路由信息从1万5千条降低到1万3千条。此外，对于路由器软件版本较旧导致处理性能不佳的，通过更新软件版本提高处理能力。<br><br>NTT公司的副社长和高层官员在说明会上进行了谢罪。但是并不会因为本次事故对用户进行赔偿或退款，因为协议上规定的是24小时以上服务中断时返还费用。<br><img height=353 alt="" src="http://www.cnblogs.com/images/cnblogs_com/smalldust/ph1.jpg" width=480 border=0><br><br>***技术内容的BLOG已经转到<a href="http://www.codesoil.net/" target=_blank>CodeSoil</a>，欢迎前来参观。 
<img src ="http://www.cnblogs.com/smalldust/aggbug/750761.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42984/" target="_blank">[新闻]Silverlight 2正式版SDK可以下载</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>亲手焙制一个极其简单但却极其实用的Reflector插件</title><link>http://www.cnblogs.com/smalldust/archive/2006/08/30/490742.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Wed, 30 Aug 2006 13:34:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/08/30/490742.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/490742.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/08/30/490742.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/490742.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/490742.html</trackback:ping><description><![CDATA[摘要: 大家在使用Reflector浏览，分析各种.Net Assembly的时候，尤其是在分析EXE文件的时候，面对成百上千个Class不知所措时，我们总希望尽快抓住主线，知道这个程序是怎样一步步执行的。这个时候，我们通常要“从头抓起”——找到程序的EntryPoint，也即入口函数（通常为Main函数）。<br><br>这里，我们用60多行来写了一个小插件，来实现这个极其简单却极其有用的功能。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/08/30/490742.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/490742.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42983/" target="_blank">[新闻]Silverlight对Flash 微软打垮Adobe</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>关于园子里讨论的软件的追求的杂谈</title><link>http://www.cnblogs.com/smalldust/archive/2006/07/18/453982.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Tue, 18 Jul 2006 09:59:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/07/18/453982.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/453982.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/07/18/453982.html#Feedback</comments><slash:comments>32</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/453982.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/453982.html</trackback:ping><description><![CDATA[摘要: 由于各位争得面红耳赤，本文是专门博大家一笑的，纯属戏谑，若有不同意见请勿深究，请勿见怪:)&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/07/18/453982.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/453982.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42981/" target="_blank">[新闻]IBM扩大研究规模 在上海成立研究院</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Reflector保护方法初探</title><link>http://www.cnblogs.com/smalldust/archive/2006/07/17/452724.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Mon, 17 Jul 2006 03:08:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/07/17/452724.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/452724.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/07/17/452724.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/452724.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/452724.html</trackback:ping><description><![CDATA[摘要: 作为一个强大的.Net Assembly反编译工具，Reflector对自己的保护措施又如何呢？这里本着学习的态度，对最新版本（4.2.45.0）的加密、保护措施进行了简单的分析。&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/07/17/452724.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/452724.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42980/" target="_blank">[新闻]eWeek评Google八大“20%项目”</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>.Net 2.0 原汁原味读取注册表</title><link>http://www.cnblogs.com/smalldust/archive/2006/06/26/436164.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Mon, 26 Jun 2006 09:22:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/06/26/436164.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/436164.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/06/26/436164.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/436164.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/436164.html</trackback:ping><description><![CDATA[在.Net 1.x当中，使用Microsoft.Win32.RegistryKey类的GetValue方法读取注册表数据时，其实数据都是经过&#8220;处理&#8221;的；<br>例如，某个字符串数据本来的值是<br>%SystemRoot%\System32\IoLogMsg.dll<br>但是用GetValue方法得到的数据却是<br>C:\WINDOWS\System32\IoLogMsg.dll<br><br>也就是说，在读取注册表中的字符串时，系统会自作主张地替你展开环境变量。<br>这的确省去我们调用Environment.ExpandEnvironmentVariables方法的麻烦，但是反过来，当我们希望原封不动地拷贝一个注册表的字符串时则束手无策。<br><br>在.Net2.0当中，我们惊喜地发现Microsoft.Win32.RegistryKey类有了一个小小的改动，就是其GetValue方法增添了一个新的重载：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 600px;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><font face="Lucida Console"><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;GetValue&nbsp;(<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;name,<br>&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;defaultValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;RegistryValueOptions&nbsp;options<br>)</span></font></div>
该方法的第三个参数是一个枚举，目前只有一个有用的值就是<b>DoNotExpandEnvironmentNames</b>。<br>指定该值，GetValue得到的结果就是没有经过展开的数据了。<br><img src ="http://www.cnblogs.com/smalldust/aggbug/436164.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42979/" target="_blank">[新闻]微软终于发布Silverlight 2正式版</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>为什么我不用IE7和FireFox</title><link>http://www.cnblogs.com/smalldust/archive/2006/06/23/433546.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Fri, 23 Jun 2006 02:47:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/06/23/433546.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/433546.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/06/23/433546.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/433546.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/433546.html</trackback:ping><description><![CDATA[摘要: 19号，我安装上IE7 Beta2；<br>23号，我终于忍无可忍将其删除；<br><br>最近一年以来，我曾经4，5次安装FireFox；<br>都是用了不到两周，就将其删除……<br><br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/06/23/433546.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/433546.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42977/" target="_blank">[新闻]微软首次打破先例 Windows 7不再改名</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>给.Net程序员的PInvoke Tips [2]: Are Strings Immutable?</title><link>http://www.cnblogs.com/smalldust/archive/2006/06/22/431996.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Thu, 22 Jun 2006 02:56:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/06/22/431996.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/431996.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/06/22/431996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/431996.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/431996.html</trackback:ping><description><![CDATA[早在Java到来之际，程序员们都已逐渐接受并乐于接受String的这一特性：immutable。<br>从C/C++转到.Net/C#的程序员们，在最初可能非常不适应把char[]和string分开对待，但是一旦习惯了就会觉得非常方便，尤其是直接以+进行连接，以及支持switch...case等。<br>这个时候问题来了，string真的是immutable的吗？<br><br>cbrumme的blog上给出了一个例子：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-family: Lucida Console; background-color: #eeeeee; font-size: 13px; width: 700px;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Runtime.InteropServices;<br>&nbsp;<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Class1<br>{<br>&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;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;computerName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">strings&nbsp;are&nbsp;always&nbsp;immutable</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;otherString&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">strings&nbsp;are&nbsp;always&nbsp;immutable</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;<br>&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;computerName.Length;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetComputerName(computerName,&nbsp;</span><span style="color: #0000ff;">ref</span><span style="color: #000000;">&nbsp;len);<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(otherString);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(</span><span style="color: #000000;">"</span><span style="color: #000000;">kernel32</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;CharSet</span><span style="color: #000000;">=</span><span style="color: #000000;">CharSet.Unicode)]<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">extern</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;GetComputerName(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<font color="red">MarshalAs&nbsp;(UnmanagedType.LPWStr)</font>]&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;name,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">ref</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;len);<br>}</span></div>
<br>该程序的执行结果也许正在你的预料之中，输出的是类似<br>MYCOMPUTERNAMElways immutable<br>之类的字符串，也就是说原字符串的前面一部分被计算机名覆盖掉了。<br><br>对上面的程序，我们可以做出如下分析：<br><span style="color: #000000;">1，computerName和</span><span style="color: #000000;">otherString </span><span style="color: #000000;">的文本相同，因此由于</span>编译器的Interning的结果，二者其实指向同一个字符串，用Object.ReferenceEquals()可以验证其相等。<br>2，红色部分标出的Marshal指令，使得该string被marshal为一个unmanaged pointer（LPWSTR）传递给了GetComputerName函数；<br>3，GetComputerName函数直接改写了computerName指向的缓冲区，string的immutable特性即被破坏。<br><br>由此我们可以看到，在与Unamanaged代码进行交互操作时必须额外小心，因为从某种意义上来说Unmanaged代码权限更大，破坏力也就更大，也就更容易引起意想不到的问题。<br><br>因此，上面那段使用GetComputerName的代码中，对该函数的包装要如何改进呢？<br><br>首先，在使用一个API之前应该注意其各个参数的in, out性质，例如关于GetComputerName，MSDN上有如下一段：<br><b><br>BOOL</b> <b>GetComputerName(</b>
<b>LPTSTR</b> <i><a href_cetemp="http://smalldust.cnblogs.com/admin/EditPosts.aspx?postid=431996" class="synParam" onclick="showTip(this)" href="">lpBuffer</a></i><b>,
</b>  <b>LPDWORD</b> <i><a href_cetemp="http://smalldust.cnblogs.com/admin/EditPosts.aspx?postid=431996" class="synParam" onclick="showTip(this)" href="">lpnSize</a></i><b>
</b><b>);</b>
<br>
<h4>Parameters</h4>
<dl><dt><i>lpBuffer</i>
</dt><dd>[out] Pointer to a buffer that receives a null-terminated string containing
the computer name or the cluster virtual server name. The buffer size should be
large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters.
</dd></dl><br>很显然，lpBuffer应该是用来输出的缓冲区，因此不应该用string，而是用byte[]，StringBuilder之类的类型与之对应；<br>即便一定要用String，也绝对不能Marshal为LPWSTR/LPTSTR，而是Marshal为VBByRefStr，以确保Managed代码侧string的immutable性质。<br><br>※此外,使用unsafe代码也可以打破String的immutable，由于不在本文范围之内，就不进行说明了。<br>  <img src ="http://www.cnblogs.com/smalldust/aggbug/431996.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42976/" target="_blank">[新闻]亚马逊EC2云计算计划支持Windows操作系统</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>除了Exception，你还能throw什么？</title><link>http://www.cnblogs.com/smalldust/archive/2006/06/21/431732.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Wed, 21 Jun 2006 08:44:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/06/21/431732.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/431732.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/06/21/431732.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/431732.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/431732.html</trackback:ping><description><![CDATA[摘要: 除了Exception，你还能throw各种各样的东西：string, int...那么，这些能够被catch(Exception ex)捕获吗？&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/06/21/431732.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/431732.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42975/" target="_blank">[新闻]鲍尔默失望变希望 幸亏当初未收购雅虎</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>个人信息的保护意识，你有吗？[草稿]</title><link>http://www.cnblogs.com/smalldust/archive/2006/06/15/426526.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Thu, 15 Jun 2006 06:19:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/06/15/426526.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/426526.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/06/15/426526.html#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/426526.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/426526.html</trackback:ping><description><![CDATA[<strong>前言<br></strong><br>我现在还清楚地记得，10多年前看过的一部电影中的场景：<br><br>身着黑衣的男主角趁着伸手不见五指的深夜，依靠绳索铁抓攀爬到一幢摩天大厦的顶层，撬开窗户潜入大厅，启动了老板桌上的电脑，随后拿出一张软盘进行拷贝&#8230;&#8230;而这个盗贼，获得的是天价的报酬；众人为了这张软盘你争我夺，甚至不惜牺牲生命&#8230;&#8230;<br><br>可见，一份信息的价值，早在很久之前就被人们认识到了——它可能是重大的商业机密，可能是政府的秘密外交策略，甚至可能是绝密的军事行动计划&#8230;&#8230;<br><br>如今，我们已经毋需置疑地来到了一个信息化的时代，信息的价值变得更重，同时盗取信息也变得更容易——曾经需要无比灵活的飞贼潜入敌人总部去盗取的信息，现在居然可以由一个手无缚鸡之力的书生，或者一个十多岁的毛头小孩通过网络轻而易举地获得。<br><br>于是，人们对信息的保护重视起来了——可是，在中国，被保护的却似乎只限于国家、企业、集体的信息；个人的信息似乎仍然没有人重视——连信息的拥有者都没有重视，谁还会重视呢？<br><br><strong>你自己就是一份宝贵的信息</strong><br><br>姓名，年龄，职业，相貌，手机号码，email地址&#8230;&#8230;这些个人的基本信息，亲朋好友都知道，似乎没有保护的必要吧——我想，这么想的人不在少数。那么，就请看看下面这些事例吧，这绝对不是危言耸听。<br><br><br>事例1 手机被盗了，你首先想到的是什么？<br><br>有些人恐怕首先想到：好贵啊，还要再买；有些人安全意识稍强些，则想到：要赶紧办停机手续，以防被盗用造成高额话费。<br>但是，不知道你有没有想到，手机里存储的你的亲朋好友的信息是否被盗？这些信息里潜在的价值，要远远高于手机的价格。<br>这些信息一旦被滥用，诈骗，诱拐&#8230;&#8230;别说这种事情不会发生在你身上，别说小偷都不懂高科技！<br><br>对于手机，我建议设置密码，至少是开机密码；在通讯录里不要用&#8220;爸爸&#8221;&#8220;妈妈&#8221;等等而是用姓名，以防诈骗。<br>此外，最近国外推出了很多可以远程摧毁信息的手机，一旦手机被盗，可以通过别的手机，或者是互联网来给该手机发送一条特殊的信息，被盗手机只要有信号，收到这条信息后就会自动清除手机上的所有数据。<br><br>与此类似的还有笔记本，PDA，U盘等，特别是U盘体积较小，容易丢失。尤其是工作用的U盘，以及存储着重要信息的U盘。现在很多企业已经禁止员工在工作中使用U盘了，你呢？<br><br><br>事例2 当网站要求你输入信息时，你仔细确认过吗？<br><br>很多网站注册时要求输入个人信息。虽然大多数人不会如果老老实实输入所有真实的信息，但是email地址，生日等等还是真是的吧？尤其是为了以防万一忘记密码，有很多网站要求输入身份证号，真实姓名等信息。你在输入这些信息时，仔细看过该网站的经营许可，以及用户协议了吗？<br><br>尤其是我见过一个算命的网站，要求必须输入真实的姓名，生日，年龄，email地址等信息，否则就不灵，或是有灾祸降临等等。<br>其实这类网站的真实目的很明显——搜集个人信息，然后兜售给需要这些信息的人。因此，如果哪一天，您的信箱里突然收到一封mail，说&#8220;某某先生，您好！今天是您的生日，特向您推荐某某商品！在您家附近的某某商场即可买到&#8221;时，千万不要奇怪，因为这些信息都是您自己泄露出去的。<br><br>上面说的还是比较&#8220;善意&#8221;的广告。如果这些信息被恶用，就不知道会有什么样的后果了。<br><br>事例3 是&#8220;送给&#8221;朋友，还是&#8220;出卖&#8221;朋友？<br><br>早在97，98甚至更早的时候，就有很多免费的贺卡网站。在这些网站中，你只需要输入朋友的email地址，一张写着你的祝福的精美的电子贺卡就会被发送到他的信箱中。当时，似乎就连这些贺卡站的运营商们也没有意识到其中个人信息的价值。<br><br>到了现在，好像大家仍然不在乎这些——有很多网站仍然有&#8220;告诉我的朋友&#8221;&#8220;发送给我的朋友&#8221;&#8220;邀请我的朋友加入&#8221;之类的功能——无论是新闻也好，图片也好，贺卡也好，还是带积分的注册也好。<br>但是，你是否意识到，你在送给朋友这份祝福的同时，也把他的email地址公布给了这家网站。特别是，如果这个email地址是他工作用的，那么他将来面对的很可能是每天从数百封的垃圾邮件中挑出客户发来的邮件；同时将面临很多带着病毒木马的恶意邮件。<br>更可怕的是，如果你在&#8220;贺卡&#8221;中无意透露了他的姓名，生日（比如生日贺卡），甚至地址和信用卡号，，很有可能导致他的邮箱被黑客攻击（许多人用生日之类的作为密码）；更严重的是导致他在现实世界中被诈骗等等。<br><br>对策方面，我的建议是：如果你要告诉朋友什么新闻，或是送给朋友祝福，请直接给他发送邮件；如果你要拉拢朋友加入什么什么社区，请直接告诉他，而不要采用网站上提供的邮件功能。告诉其他人某个朋友的email地址时，应该事先得到这位朋友的许可。<br><br>保护朋友的email地址，是每个网民应尽的义务和责任。<br><br>事例4 你的邻居，正在偷窥你的一举一动<br><br>如今，越来越多的人开始使用无线网，有些朋友甚至把无线网作为接入的主要手段。<br>对网络知识稍稍了解的朋友都知道，在传统的以太网中，数据虽然看上去是点到点的传播，但是在实质上是被发送给了同一网络中的所有终端；只不过系统只把发送给自己的数据包留下，把发送给别人的数据包扔掉而已。只需要用一些Sniffer之类的软件，就可以轻松地看到整个网络的数据包。大学时我就曾经用这种方法截获了宿舍中其他同学的密码。<br><br>那么，无线网的安全性又如何呢？<br><br>正像你想象的那样——无线网是用电波传播的，如果传播的数据不加密，理论上讲所有接受得到这个电波的人都可以轻松解密你发送的信息！当你发送email时，当你填写表单时，当你网上支付时&#8230;&#8230;黑客不必在你的房间安置任何装置，不需要入侵你的电脑&#8230;&#8230;他只需要住在你的隔壁，开着他的笔记本，运行着一些网上随处可以下载到的软件，就可以监视你了。<br><br>纵观目前广为使用的802.11a/b/g协议，虽然提供了如WEP之类的加密协议，可是真正在使用的又有多少呢？建议使用无线网的朋友，看完这篇文章赶紧重新配置无线网，加密你的数据通道（注意，限制ESSID之类的根本算不上是加密方法，请一定要用WEP）。<br><br>事例5 你真的擦干净了吗？<br><br>在办公室，信息的一个重要漏洞就是垃圾桶——在电脑时代之前，就有很多这样的例子：某公司职员经常把写有公司商业情报的废纸揉成一团，扔到了垃圾桶里；当倾倒垃圾时，竞争对手公司偷偷派人在其中搜索，终于找到了重要的商业机密&#8230;&#8230;等等，一张废纸导致公司破产的例子，并不少见。因此，从很早之前开始在欧美公司碎纸机就成了必备的办公用品。<br><br>在如今的信息时代，一张光盘，一块硬盘所包含的信息量，和以前的一张纸相比，您以为如何呢？<br>一张装满客户信息的DVD的遗失，对公司会造成多大的损失呢？<br>看到这里，我想我不说您已经很清楚了。<br>没错，您会说，我们公司已经装备了光盘软盘的绞碎机，我们这方面很完善——可是，您公司的旧电脑呢？当他们报废处理的时候，那些硬盘中的数据，擦干净了吗？是不是只是简简单单的删除，甚至只是拖到回收站而已？——不瞒您说，当年我在中关村买回来的旧硬盘上，就曾经找到了某公司职员的一览表&#8230;&#8230;<br><br>现在的大公司在办公器材的报废处理上都有严格的管理制度，对于硬盘一定要用数据粉碎软件彻底粉碎硬盘中的数据。因此我的建议是，扔东西的时候——就算是您个人的东西，无论软盘光盘还是硬盘U盘，一定要擦干净了再扔！<br><br>事例6 无处不在的信息泄露<br><br>说起信息的泄露、被盗，很多人脑中浮现出幽暗的服务器机房，一排排闪烁不停的路由器的指示灯&#8230;&#8230;这说明您还停留在20世纪！<br>伴随着科技的飞速发展，处理其速度的提高，存储媒体的大容量化，一台不到2Kg重的笔记本上就可轻易容纳下价值数百万元的信息。您在咖啡厅，肯德基，在火车上，飞机上掏出笔记本，打开客户列表，打开帐务清单，打开领导的联系方式的时候，您注意到后面有人偷偷看着吗？您在宾馆连接上宾馆提供的网络，在客户那里连接上客户的网络，在连接上不知道是哪里的无线网络时，您知道您的信息正以每秒几百万比特的速度大量泄漏吗？<br><br>我的建议是，在客户那里工作时绝对不能将自己的笔记本接入对方网络（许多大公司也是如此规定的），这样对于自己来说既避免染毒，也防止泄露敏感信息；而且万一对方网络出现什么问题也避免了嫌疑。此外，在人多的地方不要浏览敏感信息，最好不要使用笔记本办公。<br><br>
<img src ="http://www.cnblogs.com/smalldust/aggbug/426526.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42974/" target="_blank">[新闻]微软12月举办硬件工程大会 Windows7将首次亮相</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>给.Net程序员的PInvoke Tips [1]: String is Sometimes an Integer</title><link>http://www.cnblogs.com/smalldust/archive/2006/06/13/425027.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Tue, 13 Jun 2006 09:30:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/06/13/425027.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/425027.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/06/13/425027.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/425027.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/425027.html</trackback:ping><description><![CDATA[习惯了.Net编程，尤其是以前几乎没有用过Basic，Pascal，C/C++等&#8220;较古老&#8221;的语言的程序员，遇到PInvoke，尤其是COM interoperation的时候，往往是一头雾水不得要领。相信在在将来，一方面是从C#，.Net以及Java开始学习编程的人会越来越多，一方面整个Windows也逐渐往Managed平台迁移，懂得如何直接同Win32API打交道的程序员就会越来越少（当然绝对数量肯定还是很多的，至少比用DDK写驱动程序的多吧&#8230;&#8230;）<br><br>但是，对于.Net程序员来说，虽然不用直接使用C++调用API，但是PInvoke的知识还是必不可少的，对于Handle，Unmanaged Thread，COM等等最基本的东西仍然是必修课。因此，我才想通过Tips的方式，对我所了解的最基础的内容做一些整理。<br><br>说了很多废话，首先让我们看一个PInvoke时遇到的实际例子：<br><br>话说某个C#写的WindowsForm中，要对资源DLL进行读取（Resource DLL，Win32格式的只含有资源的DLL）。其中要用到这么一个API函数：<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 800px; font-family: Courier; height: 75px; background-color: #eeeeee;"><span style="color: #000000;">BOOL&nbsp;EnumResourceTypes(<br>&nbsp;&nbsp;&nbsp;&nbsp;HMODULE&nbsp;hModule,<br>&nbsp;&nbsp;&nbsp;&nbsp;ENUMRESTYPEPROC&nbsp;lpEnumFunc,<br>&nbsp;&nbsp;&nbsp;&nbsp;LONG_PTR&nbsp;lParam<br>);</span></div>
<br>其中，ENUMRESTYPEPROC，其定义为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 800px; font-family: Courier; height: 100px; background-color: #eeeeee;"><span style="color: #000000;">BOOL&nbsp;CALLBACK&nbsp;EnumResTypeProc(<br>&nbsp;&nbsp;&nbsp;&nbsp;HMODULE&nbsp;hModule,<br>&nbsp;&nbsp;&nbsp;&nbsp;LPTSTR&nbsp;lpszType,<br>&nbsp;&nbsp;&nbsp;&nbsp;LONG_PTR&nbsp;lParam<br>);</span></div>
<br>其中的LPTSTR，在C#里应该怎么写呢？我想，想也不想就写出下面代码的朋友不会太少吧：<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 800px; font-family: Courier; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">delegate</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;EnumResTypeProc(IntPtr&nbsp;hModule,&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;strType,&nbsp;IntPtr&nbsp;param);</span></div>
<br>很遗憾，这段代码在执行的时候会出错——用Marshal.GetLastWin32Error()查看，发现是ERROR_NOACCESS（998）。<br>说明，程序访问了禁止访问的地址空间。经测试，hModule是正确无误的DLL库的Handle，最后的参数也被设置为NULL，那么原因只能是这个strType了。<br><br>该参数的类型是LPTSTR，在Unicode环境下也即LPWSTR，也即WCHAR * ——没错啊，不就是字符串么？<br><br>但是我们仔细看一下MSDN的说明，就会发现，Windows提供了一些标准的资源类型；例如RT_ICON，RT_STRING，RT_VERSION，&#8230;&#8230;仔细看这些类型的定义就会发现它们都是数字。<br><br>也就是说，lpszType这个参数，即可以被当作数字来使用，也可以把其数值当作指针，指向内存中的某个地址。在这种时候，显然就不能用.Net的String类型来表示。正确的做法是，使用IntPtr，如果判断其值不是系统与定义的类型，再将其Marshal为指向字符串的指针，获取字符串。<br><br>结论：在.Net中，数据类型是&#8220;强类型&#8221;的，你不能把一只猫作为一匹马来使用，因此保证了类型安全；但是在C/C++等语言为基础的Win32中，类型却是可以任意变换的，一只猫你可以当作一匹马，甚至一头猪&#8230;&#8230;没有人来保证这种变换的安全性，但是也正因此带来了灵活性。Windows的各种数据类型当中，很多类型都是名称不同，但是实际上的数据结构是相同的（例如关于Handle，就有HWND，HMENU，HINSTANCE，HHOOK等等许多种）。相反，同一个数据类型，时而代表数值，时而代表指针的例子也不少见。<br><img src ="http://www.cnblogs.com/smalldust/aggbug/425027.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42973/" target="_blank">[新闻]电脑程序与12位真人聊天 “艾尔博特”骗过3人</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>CLR Team程序员出的难题，有兴趣的朋友不妨挑战一下</title><link>http://www.cnblogs.com/smalldust/archive/2006/05/29/412297.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Mon, 29 May 2006 11:16:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/05/29/412297.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/412297.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/05/29/412297.html#Feedback</comments><slash:comments>44</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/412297.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/412297.html</trackback:ping><description><![CDATA[<p>本题目选自CLR Team member <a href="http://blogs.msdn.com/kathykam/">Kathy Kam的BLOG</a>。</p>
<p>请你不要编译运行下面的代码，说出运行结果。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Courier; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MainProgram<br>{<br>&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;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;a&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToDouble(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.170404</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;b&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToDouble(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">2.170404</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;c&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToDouble(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">3.170404</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;d&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Convert.ToDouble(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">4.170404</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine((a&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1.170404</span><span style="COLOR: #000000">));&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine((b&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2.170404</span><span style="COLOR: #000000">));&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine((c&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3.170404</span><span style="COLOR: #000000">));&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine((d&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4.170404</span><span style="COLOR: #000000">));&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</span></div>
<br>（如果你觉得这个题目很简单，你不妨在猜测一下答案之后实际运行一下试试看。不过园子里这么多高手，解答这个问题应该很轻松，所以请大家留情不要太鄙视我，呵呵） <br><br><span style="COLOR: #ff0000">补充：<br>请大家继续试一下5.170404，6..170404，7.170404，8.170404&#8230;&#8230;<br>之后再下结论。</span>
<img src ="http://www.cnblogs.com/smalldust/aggbug/412297.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42971/" target="_blank">[新闻]Mozilla发布网页开发工具实验室</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Google Trends发布</title><link>http://www.cnblogs.com/smalldust/archive/2006/05/11/397576.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Thu, 11 May 2006 10:51:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/05/11/397576.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/397576.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/05/11/397576.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/397576.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/397576.html</trackback:ping><description><![CDATA[Google可以说是全世界使用最广泛的搜索引擎，其搜索的统计结果本身就是一笔宝贵的财富。<br>Google每年都会推出Zeitgeist以发表最热门的关键字的相关数据，现在有了Google Trends，你就可以查看任意关键字的数据了。<br><br>下面是搜索&#8220;PS3&#8221;的结果。从图上我们看出人们对PS3的关注程序——也即关键词被搜索的频率，和厂商的各种动作紧密相关。<br>（顺便说一下，前天PS3的发布日期终于最后确定在11月11日，售价5万9日元）<br><br><img src="http://www.cnblogs.com/images/cnblogs_com/smalldust/trend.gif" border=0><br><br><br>我们再看下面的搜索结果，PodCast从不为人知到红红火火，从图上可以看出将来必定更加受人关注。<br><img src="http://www.cnblogs.com/images/cnblogs_com/smalldust/trend2.gif" border=0>&nbsp; <img src ="http://www.cnblogs.com/smalldust/aggbug/397576.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42970/" target="_blank">[新闻]经典软件十五年深情回眸</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>也谈用反射实现Enum→String映射：一种重视性能的方法</title><link>http://www.cnblogs.com/smalldust/archive/2006/04/25/384657.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Tue, 25 Apr 2006 07:50:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/04/25/384657.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/384657.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/04/25/384657.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/384657.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/384657.html</trackback:ping><description><![CDATA[摘要: 在枚举中使用自定义Attribute来显示中文枚举值或者多语言枚举值？那么你在处理大量数据的时候，不担心反射的性能问题吗？<br>虽然使用反射，但是却比系统提供的Enum.ToString方法还要快4倍——本文提出的是一种实用，且在形式优雅的前提下保证最大性能的实现方法。&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/04/25/384657.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/384657.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42969/" target="_blank">[新闻]MySpace推自助广告平台MyAds</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>针对个例的、社区性的维基系统设想（草稿）</title><link>http://www.cnblogs.com/smalldust/archive/2006/04/18/378235.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Tue, 18 Apr 2006 07:23:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/04/18/378235.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/378235.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/04/18/378235.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/378235.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/378235.html</trackback:ping><description><![CDATA[摘要: 新浪爱问，百度知道，Wiki系统，MS的KnowledgeBase……把这些集中起来，就是我这篇文章的主要内容了。<br><br>注：本文为草稿，旨在征求各位的批评指正。&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/04/18/378235.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/378235.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42960/" target="_blank">[新闻]Facebook创始人:信息共享或存摩尔定律</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>数学的思考方式 VS 程序的思考方式</title><link>http://www.cnblogs.com/smalldust/archive/2006/04/12/373702.html</link><dc:creator>smalldust</dc:creator><author>smalldust</author><pubDate>Wed, 12 Apr 2006 14:15:00 GMT</pubDate><guid>http://www.cnblogs.com/smalldust/archive/2006/04/12/373702.html</guid><wfw:comment>http://www.cnblogs.com/smalldust/comments/373702.html</wfw:comment><comments>http://www.cnblogs.com/smalldust/archive/2006/04/12/373702.html#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://www.cnblogs.com/smalldust/comments/commentRss/373702.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/smalldust/services/trackbacks/373702.html</trackback:ping><description><![CDATA[摘要: 数学与算法的思考方式的讨论；含有UVS的136题的解法。&nbsp;&nbsp;<a href='http://www.cnblogs.com/smalldust/archive/2006/04/12/373702.html'>阅读全文</a><img src ="http://www.cnblogs.com/smalldust/aggbug/373702.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42959/" target="_blank">[新闻]微软承认Vista用户账户控制功能有问题</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>