<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_鲨丁鱼.net技术小栈</title><subtitle type="text">这里讨论.net的web和form开发，还有其它关于WEB开发和安全的全部知识点，顺带一些经典的有意思的杂文！</subtitle><id>http://feed.cnblogs.com/blog/u/15577/rss</id><updated>2011-10-18T09:58:52Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/15577/rss"/><entry><id>http://www.cnblogs.com/King0502/archive/2011/04/25/2026637.html</id><title type="text">如何使网页变黑白色(灰色)</title><summary type="text">以下为全站CSS代码。 html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); } 使用方法：这段代码可以变网页为黑白，将代码加到CSS最顶端就可以实现素装。建议全国站长动起来。为在地震中遇难的同胞哀悼。 如果网站没有使用CSS，可以在网页/模板的HTML代码&amp;lt;head&amp;gt;和&amp;lt;/head&amp;gt; 之间插入： &amp;lt;style&amp;gt; html{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);} &amp;lt;/s</summary><published>2011-04-24T22:39:00Z</published><updated>2011-04-24T22:39:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2011/04/25/2026637.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2011/04/25/2026637.html"/><content type="html">以下为全站CSS代码。 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); } &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;使用方法：这段代码可以变网页为黑白，将代码加到CSS最顶端就可以实现素装。建议全国站长动起来。为在地震中遇难的同胞哀悼。 &lt;br /&gt;&lt;br /&gt;如果网站没有使用CSS，可以在网页/模板的HTML代码&amp;lt;head&amp;gt;和&amp;lt;/head&amp;gt; 之间插入： &lt;br /&gt;&lt;br /&gt;&amp;lt;style&amp;gt; &lt;br /&gt;html{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);} &lt;br /&gt;&amp;lt;/style&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;有一些站长的网站可能使用这个css 不能生效，是因为网站没有使用最新的网页标准协议 &lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt; &lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;请将网页最头部的&amp;lt;html&amp;gt;替换为以上代码。 &lt;br /&gt;&lt;br /&gt;有一些网站FLASH动画的颜色不能被CSS滤镜控制，可以在FLASH代码的&amp;lt;object &amp;#8230;&amp;gt;和&amp;lt;/object&amp;gt;之间插入： &lt;br /&gt;&lt;br /&gt;&amp;lt;param value="false" name="menu"/&amp;gt; &lt;br /&gt;&amp;lt;param value="opaque" name="wmode"/&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;最简单的把页面变成灰色的代码是在head 之间加&amp;lt;style type="text/css"&amp;gt; &lt;br /&gt;&lt;br /&gt;html { &lt;br /&gt;FILTER: gray &lt;br /&gt;} &lt;br /&gt;&amp;lt;/style&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;一般的discuz论坛在 你的控制css 文件下修改/images/header/header.css 这个文件 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0556a3"&gt;参考文献：&lt;/font&gt;http://news.newhua.com/news1/evaluation/2008/519/08519162516 &lt;img src="http://www.cnblogs.com/King0502/aggbug/2026637.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/King0502/archive/2011/04/25/2026637.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/King0502/archive/2011/04/10/2011338.html</id><title type="text">aspnet_merge.exe”已退出，代码为1的错误的解决方法(另类)</title><summary type="text">没有重复的类，采用排除法，一个个文件夹排除，再一个个文件排除，最终发现一个还没有嵌套方法的页面里面有三个&amp;lt;form&amp;gt;，而且只有两个&amp;lt;/form&amp;gt;，删除只留下一对，编译，成功！折腾了三个小时！</summary><published>2011-04-10T06:36:00Z</published><updated>2011-04-10T06:36:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2011/04/10/2011338.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2011/04/10/2011338.html"/><content type="html">&lt;br /&gt;没有重复的类，采用排除法，一个个文件夹排除，再一个个文件排除，最终发现一个还没有嵌套方法的页面里面有三个&amp;lt;form&amp;gt;，而且只有两个&amp;lt;/form&amp;gt;，删除只留下一对，编译，成功！折腾了三个小时！&lt;img src="http://www.cnblogs.com/King0502/aggbug/2011338.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/King0502/archive/2011/04/10/2011338.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/King0502/archive/2011/03/19/1988886.html</id><title type="text">C#编程中的66个好习惯，你有多少个？</title><summary type="text">1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间，避免将多个命名空间放在同一个文件里面。3. 一个文件最好不要超过500行的代码（不包括机器产生的代码）。 4. 一个方法的代码长度最好不要超过25行。5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。 6. 每行代码不要超过80个字符。 7. 不要手工的修改机器产生的代码。 a) 如果需要编辑机器产生的代码，编辑格式和风格要符合该编码标准。b) Use partial classes whenever possible to factor out the maintained portions. 8. 避免利</summary><published>2011-03-19T08:44:00Z</published><updated>2011-03-19T08:44:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2011/03/19/1988886.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2011/03/19/1988886.html"/><content type="html">1.&amp;nbsp; 避免将多个类放在一个文件里面。 &lt;br /&gt;2.&amp;nbsp; 一个文件应该只有一个命名&lt;span  onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&amp;amp;tagid=646"&gt;空间&lt;/span&gt;，避免将多个命名空间放在同一个文件里面。&lt;br /&gt;3.&amp;nbsp; 一个文件最好不要超过500行的代码（不包括机器产生的代码）。 &lt;br /&gt;4.&amp;nbsp; 一个方法的代码长度最好不要超过25行。&lt;br /&gt;5.&amp;nbsp; 避免方法中有超过5个参数的情况。使用结构来传递多个参数。 &lt;br /&gt;6.&amp;nbsp; 每行代码不要超过80个字符。 &lt;br /&gt;7.&amp;nbsp; 不要手工的修改机器产生的代码。 &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; 如果需要编辑机器产生的代码，编辑格式和风格要符合该编码标准。&lt;br /&gt;b)&amp;nbsp; Use partial classes whenever possible to factor out the maintained portions. &lt;/blockquote&gt;&lt;br /&gt;8.&amp;nbsp; 避免利用注释解释显而易见的代码。 &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; 代码应该可以自解释。好的代码由可读的变量和方法命名因此不需要注释。&lt;/blockquote&gt;&lt;br /&gt;9.&amp;nbsp; Document only operational assumptions, algorithm insights and so on.&amp;nbsp; &lt;br /&gt;10.&amp;nbsp; 避免使用方法级的文档。 &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; 使用扩展的API文档说明之。 &lt;br /&gt;b)&amp;nbsp; 只有在该方法需要被其他的&lt;span  onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&amp;amp;tagid=1347"&gt;开发&lt;/span&gt;者使用的时候才使用方法级的注释。（在&lt;span  onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&amp;amp;tagid=290"&gt;C#&lt;/span&gt;中就是///）&lt;/blockquote&gt;&lt;br /&gt;11.&amp;nbsp; 不要硬编码数字的值，总是使用构造函数设定其值。 &lt;br /&gt;12.&amp;nbsp; 只有是自然结构才能直接使用const，比如一个星期的天数。 &lt;br /&gt;13.&amp;nbsp; 避免在只读的变量上使用const。如果想实现只读，可以直接使用readonly。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_-1"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;public class MyClass {&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public readonly int Number;&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public MyClass(int&amp;nbsp; someValue)&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Number = someValue;&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public&amp;nbsp; const int&amp;nbsp; DaysInWeek = 7; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_-1'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;14.&amp;nbsp; 每个假设必须使用Assert检查 &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; 平均每15行要有一次检查(Assert) &lt;/blockquote&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_0"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;using System.Diagnostics;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object GetObject() {&amp;#8230;} &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object obj = GetObject();&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Debug.Assert(obj != null);&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_0'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;15.&amp;nbsp; 代码的每一行都应该通过白盒方式的测试。 &lt;br /&gt;16.&amp;nbsp; 只抛出已经显示处理的异常。 &lt;br /&gt;17.&amp;nbsp; 在捕获(catch)语句的抛出异常子句中(throw)，总是抛出原始异常维护原始错误的堆栈分配。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_1"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;&amp;nbsp; catch(Exception exception) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageBox.Show(exception.Message);&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw ;&amp;nbsp; //和throw exception一样。 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_1'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;18.&amp;nbsp; 避免方法的返回值是错误代码。 &lt;br /&gt;19.&amp;nbsp; 尽量避免定义自定义异常类。 &lt;br /&gt;20.&amp;nbsp; 当需要定义自定义的异常时： &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; 自定义异常要继承于ApplicationException。&lt;br /&gt;b)&amp;nbsp; 提供自定义的序列化功能。&lt;/blockquote&gt;&lt;br /&gt;21.&amp;nbsp; 避免在单个程序集里使用多个Main方法。 &lt;br /&gt;22.&amp;nbsp; 只对外公布必要的操作，其他的则为internal。 &lt;br /&gt;23.&amp;nbsp; Avoid friend assemblies, as it increases inter-assembly coupling. &lt;br /&gt;24.&amp;nbsp; Avoid code that relies on an assembly running from a particular location. &lt;br /&gt;25.&amp;nbsp; 使应用程序集尽量为最小化代码(EXE客户程序)。使用类库来替换包含的商务逻辑。 &lt;br /&gt;26.&amp;nbsp; 避免给枚举变量提供显式的值。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_2"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; //正确方法&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public enum Color &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Red,Green,Blue &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //避免 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public enum Color {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Red = 1,Green =&amp;nbsp; 2,Blue = 3 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_2'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;27.&amp;nbsp; 避免指定特殊类型的枚举变量。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_3"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //避免&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public enum Color&amp;nbsp; : long {Red,Green,Blue}&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_3'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;28.&amp;nbsp; 即使if语句只有一句，也要将if语句的内容用大括号扩起来。 &lt;br /&gt;29.&amp;nbsp; 避免使用trinary条件操作符。 &lt;br /&gt;30.&amp;nbsp; 避免在条件语句中调用返回bool值的函数。可以使用局部变量并检查这些局部变量。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_4"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;bool IsEverythingOK() &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;}&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //避免&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (IsEverythingOK ()) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;} &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //替换方案&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bool ok = IsEverythingOK(); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (ok) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;}&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_4'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;31.&amp;nbsp; 总是使用基于0开始的数组。 &lt;br /&gt;32.&amp;nbsp; 在循环中总是显式的初始化引用类型的数组。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_5"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;public class MyClass {&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyClass[] array = new&amp;nbsp; MyClass[100]; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(int index = 0; index &amp;lt; array.Length; index++)&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array[index] = new&amp;nbsp; MyClass(); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_5'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;33.&amp;nbsp; 不要提供public 和 protected的成员变量，使用属性代替他们。 &lt;br /&gt;34.&amp;nbsp; 避免在继承中使用new而使用override替换。 &lt;br /&gt;35.&amp;nbsp; 在不是sealed的类中总是将public 和 protected的方法标记成virtual的。 &lt;br /&gt;36.&amp;nbsp; 除非使用interop(COM+ 或其他的dll)代码否则不要使用不安全的代码(unsafe code)。 &lt;br /&gt;37.&amp;nbsp; 避免显示的转换，使用as操作符进行兼容类型的转换。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_6"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;Dog dog = new GermanShepherd(); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GermanShepherd shepherd = dog&amp;nbsp; as&amp;nbsp; GermanShepherd; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (shepherd != null ) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;}&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_6'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;38.&amp;nbsp; 当类成员包括委托的时候 &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; Copy a delegate to a local variable before publishing to avoid concurrency race condition.&amp;nbsp; &lt;br /&gt;b)&amp;nbsp; 在调用委托之前一定要检查它是否为null&lt;/blockquote&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_7"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;public class MySource &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public event EventHandler&amp;nbsp; MyEvent;&amp;nbsp; public void FireEvent()&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EventHandler temp = MyEvent;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(temp != null )&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; temp(this,EventArgs.Empty);&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_7'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;39.&amp;nbsp; 不要提供公共的事件成员变量，使用事件访问器替换这些变量。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_8"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;public class MySource &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyDelegate m_SomeEvent ;&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public event MyDelegate SomeEvent&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; m_SomeEvent += value;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; remove&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; m_SomeEvent -= value;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_8'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;40.&amp;nbsp; 使用一个事件帮助类来公布事件的定义。 &lt;br /&gt;41.&amp;nbsp; 总是使用接口。 &lt;br /&gt;42.&amp;nbsp; 类和接口中的方法和属性至少为2:1的比例。 &lt;br /&gt;43.&amp;nbsp; 避免一个接口中只有一个成员。 &lt;br /&gt;44.&amp;nbsp; 尽量使每个接口中包含3－5个成员。 &lt;br /&gt;45.&amp;nbsp; 接口中的成员不应该超过20个。 &lt;br /&gt;a)&amp;nbsp; 实际情况可能限制为12个 &lt;br /&gt;46.&amp;nbsp; 避免接口成员中包含事件。 &lt;br /&gt;47.&amp;nbsp; 避免使用抽象方法而使用接口替换。 &lt;br /&gt;48.&amp;nbsp; 在类层次中显示接口。 &lt;br /&gt;49.&amp;nbsp; 推荐使用显式的接口实现。 &lt;br /&gt;50.&amp;nbsp; 从不假设一个类型兼容一个接口。Defensively query for that interface. &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_9"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;SomeType obj1; &lt;span  onclick="tagshow(event)" href="tools/ajax.aspx?t=topicswithsametag&amp;amp;tagid=1410"&gt;IM&lt;/span&gt;yInterface obj2; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;/* 假设已有代码初始化过obj1，接下来 */ &lt;br /&gt;&lt;/li&gt;&lt;li&gt;obj2 = obj1 as IMyInterface;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;if (obj2 != null) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;{&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; obj2.Method1(); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;} &lt;br /&gt;&lt;/li&gt;&lt;li&gt;else &lt;br /&gt;&lt;/li&gt;&lt;li&gt;{&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; //处理错误 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;} &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_9'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;51.&amp;nbsp; 表现给最终用户的字符串不要使用硬编码而要使用资源文件替换之。 &lt;br /&gt;52.&amp;nbsp; 不要硬编码可能更改的基于配置的字符串，比如连接字符串。 &lt;br /&gt;53.&amp;nbsp; 当需要构建长的字符串的时候，使用StringBuilder不要使用string &lt;br /&gt;54.&amp;nbsp; 避免在结构里面提供方法。 &lt;br /&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;a)&amp;nbsp; 建议使用参数化构造函数 &lt;br /&gt;b)&amp;nbsp; 可以重裁操作符 &lt;/blockquote&gt;&lt;br /&gt;55.&amp;nbsp; 总是要给静态变量提供静态构造函数。 &lt;br /&gt;56.&amp;nbsp; 能使用早期绑定就不要使用后期绑定。 &lt;br /&gt;57.&amp;nbsp; 使用应用程序的日志和跟踪。 &lt;br /&gt;58.&amp;nbsp; 除非在不完全的switch语句中否则不要使用goto语句。 &lt;br /&gt;59.&amp;nbsp; 在switch语句中总是要有default子句来显示信息(Assert)。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_10"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;int number = SomeMethod(); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (number) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Trace.WriteLine("Case 1:"); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Trace.WriteLine("Case 2:"); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default:&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Debug.Assert(false); &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_10'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;60.&amp;nbsp; 除非在构造函数中调用其他构造函数否则不要使用this指针。 // 正确使用this的例子 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_11"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;public class MyClass &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public MyClass(string message )&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public MyClass()&amp;nbsp; : this("hello")&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_11'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;61.&amp;nbsp; 除非你想重写子类中存在名称冲突的成员或者调用基类的构造函数否则不要使用base来访问基类的成员。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_12"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;// 正确使用base的例子 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public class Dog &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Dog(string name)&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {}&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; virtual public void Bark( int howLong)&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {} &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public class GermanShepherd : Dog &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public GermanShe pherd(string name): base (name)&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {}&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; override public void Bark(int&amp;nbsp; howLong)&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; base .Bark(howLong);&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_12'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;62.&amp;nbsp; 基于模板的时候要实现Dispose()和Finalize()两个方法。 &lt;br /&gt;63.&amp;nbsp; 通常情况下避免有从System.Object转换来和由System.Object转换去的代码，而使用强制转换或者as操作符替换。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_13"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;class SomeClass &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {} &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //避免： &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class MyClass &amp;lt;T&amp;gt;&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void SomeMethod(T t)&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object temp = t;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SomeClass obj = (SomeClass)temp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 正确： &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class MyClass &amp;lt;T&amp;gt; where T : SomeClass &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void SomeMethod(T t)&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SomeClass obj = t;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_13'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;64.&amp;nbsp; 在一般情况下不要定影有限制符的接口。接口的限制级别通常可以用强类型来替换之。 &#xD;
&lt;div &gt;&#xD;
&lt;div id="code56972_14"&gt;&#xD;
&lt;ol&gt;&lt;li&gt;public class Customer &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;}&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //避免： &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public interface IList &amp;lt;T&amp;gt; where T : Customer&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;} &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //正确： &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public interface ICustomerList : IList &amp;lt;Customer&amp;gt;&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;#8230;}&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;em onclick="copycode($('code56972_14'));"&gt;复制代码&lt;/em&gt;&lt;/div&gt;65.&amp;nbsp; 不确定在接口内的具体方法的限制条件。 &lt;br /&gt;66.&amp;nbsp; 总是选择使用C#内置（一般的generics）的数据结构。 &lt;img src="http://www.cnblogs.com/King0502/aggbug/1988886.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/King0502/archive/2011/03/19/1988886.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/King0502/archive/2011/01/30/2019262.html</id><title type="text">遍历Request.QueryString的所有参数与值</title><summary type="text"/><published>2011-01-30T15:32:00Z</published><updated>2011-01-30T15:32:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2011/01/30/2019262.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2011/01/30/2019262.html"/><content type="html">&lt;p&gt;应用在Pager控件中：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;string sQueryString = "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; Request.QueryString.Count; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Request.QueryString.Keys[i].ToString().ToLower() != "page") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sQueryString += Request.QueryString.Keys[i].ToString() + "=" + Request.QueryString[i].ToString() + "&amp;amp;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (sQueryString != "")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sQueryString = "?" + sQueryString + "page=";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sQueryString = "?page=";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return Request.Url.AbsolutePath + sQueryString;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/King0502/aggbug/2019262.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/King0502/archive/2011/01/30/2019262.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/King0502/archive/2009/07/08/2019263.html</id><title type="text">如何调试触发器</title><summary type="text"/><published>2009-07-08T10:52:00Z</published><updated>2009-07-08T10:52:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2009/07/08/2019263.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2009/07/08/2019263.html"/></entry><entry><id>http://www.cnblogs.com/King0502/archive/2009/06/27/2019264.html</id><title type="text">Sql Server触发器的原理及应用技巧</title><summary type="text"/><published>2009-06-27T02:21:00Z</published><updated>2009-06-27T02:21:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2009/06/27/2019264.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2009/06/27/2019264.html"/></entry><entry><id>http://www.cnblogs.com/King0502/archive/2009/03/08/2019265.html</id><title type="text">远程桌面问题，连接后马上断开，并显示“远程计算机已结束连接”</title><summary type="text"/><published>2009-03-08T13:10:00Z</published><updated>2009-03-08T13:10:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2009/03/08/2019265.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2009/03/08/2019265.html"/></entry><entry><id>http://www.cnblogs.com/King0502/archive/2009/01/26/2019266.html</id><title type="text">关于网站的推广方法</title><summary type="text"/><published>2009-01-26T07:14:00Z</published><updated>2009-01-26T07:14:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2009/01/26/2019266.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2009/01/26/2019266.html"/></entry><entry><id>http://www.cnblogs.com/King0502/archive/2009/01/20/2019267.html</id><title type="text">DOS命令如何删除文件和文件夹</title><summary type="text"/><published>2009-01-19T18:38:00Z</published><updated>2009-01-19T18:38:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2009/01/20/2019267.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2009/01/20/2019267.html"/></entry><entry><id>http://www.cnblogs.com/King0502/archive/2009/01/12/1374497.html</id><title type="text">如何将网站提交给百度和谷歌</title><summary type="text">百度： http://www.baidu.com/search/url_submit.html Google： http://www.google.com/intl/zh-CN/add_url.html 办公室里更衣的黑丝妹妹性感的眼镜妹妹靓丽的摩托车模特绚 丽</summary><published>2009-01-12T13:54:00Z</published><updated>2009-01-12T13:54:00Z</updated><author><name>King0502</name><uri>http://www.cnblogs.com/King0502/</uri></author><link rel="alternate" href="http://www.cnblogs.com/King0502/archive/2009/01/12/1374497.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/King0502/archive/2009/01/12/1374497.html"/></entry></feed>
