<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[风雨轩]]></title>
<link>http://www.fenglog.com/</link>
<description><![CDATA[---- 静憩风雨轩，与你听风赏雨！]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[lucklier@163.com(随风)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>风雨轩</title> 
	<url>http://www.fenglog.com/images/logos.gif</url> 
	<link>http://www.fenglog.com/</link> 
	<description>风雨轩</description> 
</image>

			<item>
			<link>http://www.fenglog.com/default.asp?id=435</link>
			<title><![CDATA[俗话说。。俗话又说。。]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[杂货仓库]]></category>
			<pubDate>Fri,07 May 2010 15:14:37 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=435</guid>	
		<description><![CDATA[1、俗话说：兔子不吃窝边草；可俗话又说：近水楼台先得月!<br/>2、俗话说：宰相肚里能撑船；可俗话又说：有仇不报非君子!<br/>3、俗话说：人不犯我，我不犯人；可俗话又说：先下手为强，后下手遭殃!<br/>4、俗话说：男子汉大丈夫，宁死不屈；可俗话又说：男子汉大丈夫，能屈能伸!<br/>5、俗话说：打狗还得看主人；可俗话又说：杀鸡给猴看!<br/>6、俗话说：知无不言，言无不尽；可俗话又说：交浅勿言深，沉默是金!<br/>7、俗话说：车到山前必有路；可俗话又说：不撞南墙不回头!<br/>8、俗话说：条条大路通罗马；可俗话又说：一条道走到黑!<br/>9、俗话说：礼轻情谊重；可俗话又说：礼多人不怪!<br/>10、俗话说：人多力量大；可俗话又说：人多嘴杂!<br/>11、俗话说：买卖不成仁义在；可俗话又说：亲兄弟，明算帐!<br/>12、俗话说：一个好汉三个帮；可俗话又说：靠人不如靠己!<br/>13、俗话说：人往高处走；可俗话又说：爬得高，摔得重!<br/>14、俗话说：一口唾沫一个钉；可俗话又说：人嘴两张皮，咋说咋有理!<br/>15、俗话说：知识要有产权；俗话又说：不分享心里不安!<br/>16、俗话说：亡羊补牢，未为迟也；可俗话又说：亡羊补牢，为时已晚！<br/>17、俗话说：瘦死的骆驼比马大；可俗话又说：拔了毛的凤凰不如鸡！<br/>18、俗话说：宁可玉碎，不能瓦全；可俗话又说：留得青山在，不怕没柴烧！<br/>19、俗话说：人不可貌相，海水不可斗量；可俗话又说：人靠衣裳马靠鞍！<br/>20、俗话说：浪子回头金不换；可俗话又说：狗改不了吃屎！<br/><br/>21、俗话说：苦海无边，回头是岸；可俗话又说：开弓没有回头箭！<br/>22、俗话说：退一步海阔天空；可俗话又说：狭路相逢勇者胜！<br/>23、俗话说：三百六十行，行行出状元；可俗话又说：万般皆下品，唯有读书高！<br/>24、俗话说：书到用时方恨少；可俗话又说：百无一用是书生！<br/>25、俗话说：金钱不是万能的；可俗话又说：有钱能使鬼推磨！<br/>26、俗话说：天无绝人之路；可俗话又说：天网恢恢，疏而不漏！<br/>27、俗话说：出淤泥而不染；可俗话又说：近朱者赤，近墨者黑！<br/>28、俗话说：捉贼捉赃，捉奸捉双；可俗话又说：欲加之罪，何患无辞！<br/>29、俗话说：贫贱不能移！可俗话又说：人贫志短，马瘦毛长！<br/>30、俗话说：青取之于蓝而胜于蓝；可俗话又说：姜还是老的辣！<br/><br/>31、俗话说：后生可畏；可俗话又说：嘴上无毛、办事不牢！<br/>32、俗话说：有缘千里来相会；可俗话又说：不是冤家不聚头！<br/>33、俗话说：在天愿作比翼鸟，在地愿为连理枝；可俗话又说：夫妻本是同林鸟，大难来时各自飞！<br/>34、俗话说：得饶人处且饶人；可俗话又说：纵虎归山，后患无穷！<br/>35、俗话说：善有善报，恶有恶报；话又说：人善被人欺，马善被人骑！<br/>36、俗话说：一分耕耘、一分收获；可俗话又说：人无横财不富、马无夜草不肥！<br/>37、俗话说：小心驶得万年船；可俗话又说：撑死胆大的，饿死胆小的！<br/>38、俗话说：量小非君子；可俗话又说：无毒不丈夫！<br/>39、俗话说：一寸光阴一寸金；可俗话又说：寸金难买寸光阴！<br/>40、俗话说：日久见人心；可俗话又说：人心隔肚皮！<br/><br/>41、俗话说：光阴似箭；可俗话又说：度日如年！<br/>42、俗话说：己所不欲，勿施于人；可俗话又说：顺我者昌，逆我者亡！<br/>43、俗话说：邪不压正；可俗话又说：道高一尺，魔高一丈！<br/>44、俗话说：小不忍则乱大谋；可俗话又说：不蒸馒头蒸(争)口气！<br/>45、俗话说：人人为我，我为人人；可俗话又说：人不为己，天诛地灭！<br/>46、俗话说：不怕人不敬，就怕己不正；可俗话又说：众口烁金，积毁销骨！<br/>47、俗话说：三个臭皮匠，胜过诸葛亮；可俗话又说：一个和尚挑水喝，两个和尚抬水喝，三个和尚没水喝！<br/>48、俗话说：不入虎穴，焉得虎子；可俗话又说：老虎屁股摸不得！<br/>49、俗话说：百事孝为先；可俗话又说：忠孝不能两全！<br/>50、俗话说：人无远虑，必有近忧；可俗话又说：今朝有酒今朝醉！<br/><br/>51、俗话说：家事国事天下事，事事关心；可俗话又说：老婆孩子热炕头！<br/>52、俗话说：人定胜天；可俗话又说：天意难违！<br/>53、俗话说：愚公移山；可俗话又说：胳膊拧不过大腿！<br/>54、俗话说：哪里跌倒哪里爬起；可俗话又说：一失足成千古恨！<br/>55、俗话说：路不平有人铲，事不平有人管；可俗话又说：自家扫取门前雪，莫管他人屋上霜！<br/>56、俗话说：滴水之恩当涌泉相报！可俗话又说：过河拆桥、卸磨杀驴、兔死狗烹、鸟尽弓藏！<br/>57、俗话说：双喜临门；可俗话又说：福无双进，祸不单行！<br/>58、俗话说：人挪活，树挪死；可俗话又说：滚石不生苔，转业不生财！<br/>59、俗话说：嫁鸡随鸡，嫁狗随狗；可俗话又说：男怕选错行，女怕嫁错郎！<br/>60、俗话说：明人不做暗事；可俗话又说：兵不厌诈！<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=434</link>
			<title><![CDATA[冒泡排序算法]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Sun,02 May 2010 01:06:31 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=434</guid>	
		<description><![CDATA[&nbsp;///&nbsp;&lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;冒泡排序法<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;r&#34;&gt;&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;string[]&nbsp;BubbleSort(string[]&nbsp;r)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,&nbsp;j;&nbsp;//交换标志&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;temp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;exchange;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;r.Length;&nbsp;i++)&nbsp;//最多做R.Length-1趟排序&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;exchange&nbsp;=&nbsp;false;&nbsp;//本趟排序开始前，交换标志应为假<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j&nbsp;=&nbsp;r.Length&nbsp;-&nbsp;2;&nbsp;j&nbsp;&gt;=&nbsp;i;&nbsp;j--)<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;if&nbsp;(System.String.CompareOrdinal(r[j&nbsp;+&nbsp;1],&nbsp;r[j])&nbsp;&lt;&nbsp;0)　//交换条件<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;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;r[j&nbsp;+&nbsp;1];<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;r[j&nbsp;+&nbsp;1]&nbsp;=&nbsp;r[j];<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;r[j]&nbsp;=&nbsp;temp;<br/><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;exchange&nbsp;=&nbsp;true;&nbsp;//发生了交换，故将交换标志置为真&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;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!exchange)&nbsp;//本趟排序未发生交换，提前终止算法&nbsp;<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;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;return&nbsp;r;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=433</link>
			<title><![CDATA[这世界真假]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[心情小窗]]></category>
			<pubDate>Sat,01 May 2010 23:25:52 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=433</guid>	
		<description><![CDATA[RT]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=432</link>
			<title><![CDATA[.net支付宝接口源码]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Wed,28 Apr 2010 22:22:35 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=432</guid>	
		<description><![CDATA[1.支付宝接口中需要修改参数的文件有&nbsp;Default.aspx&nbsp;文件;买家付款成功后反馈的页面时&nbsp;return_url(页面跳转),notify_url(后台通知);AliPay.cs&nbsp;不用修改.&nbsp;Default.aspx&nbsp;文件中&nbsp;seller_email,key,partner&nbsp;对应的分别是支付宝帐号,安全校验码和合作id&nbsp;<br/>(注：如何获取安全校验码和合作ID<br/>1.访问&nbsp;www.alipay.com，然后登陆您的帐户.<br/>2.点击右上角的“商家工具”.<br/>3.在网站集成目录下，选择适合您的交易方式，然后点击点此申请.<br/>4.填写好申请表格，点击下一步，您可以看到一段32位的字符串—就是安全校验.<br/>5.合作ID在安全校验码下方.)<br/>Default.aspx&nbsp;页面,需要传递参数到这个页面,需要传递的参数是&nbsp;subject(商品名称),body(商品说明),total_fee,out_trade_no(外部商家订单号.为了方便测试,在index.asp这个页面采用的是以日期的形式的数字字符串,这个订单号必须保证提交给支付宝的时候是唯一的,否则支付不了<br/><br/>2.<br/>return_url&nbsp;和&nbsp;notify_url&nbsp;的区别及其操作.<br/>买家付款成功后,如果接口中指定有return_url&nbsp;,买家付完款后会跳到&nbsp;return_url所在的页面,这个页面可以展示给客户看,这个页面只有付款成功才会跳转.<br/><br/>notify_url:&nbsp;服务器后台通知,这个页面是程序后台运行的(买家和卖家都看不到),买家付完款后,支付宝会调用notify_url这个页面所在的页面并把相应的参数传递到这个页面,这个页面根据支付宝传递过来的参数修改网站订单的状态,更新完订单后需要在页面上打印出一个success&nbsp;给支付宝,如果反馈给支付宝的不是success,支付宝会继续调用这个页面.&nbsp;<br/><br/>流程:&nbsp;买家付完款(trade_status=TRADE_FINISHED)---&gt;支付宝通知notify_url---&gt;如果反馈给支付宝的是success(表示成功,这个状态下不再反馈,如果不是继续通知,一般第一次发送和第二次发送的时间间隔是3分钟)<br/>剩下的过程,卖家发货,买家确认收货,交易成功都是这个流程<br/><br/><br/>排除常见错误的方法：<br/>1:错误信息提示为：ILLEGAL_SIGN，属于签名验证出错<br/>CreatUrl的方式参数不一致，编码问题都可以引起这个错误<br/>2:错误信息提示为：ILLEGAL_ARGUMENT，属于参数格式有问题<br/>查看接口发送页的参数是不是符合要求<br/>3：错误信息提示为：ILLEGAL_SERVICE，属于无效接口名称<br/>查看service参数<br/>4：错误信息提示为ILLEGAL_PARTNER，属于无效合作伙伴ID<br/>查看partner参数<br/>5:错误信息提示为ILLEGAL_SIGN_TYPE，属于无效签名方式<br/>sign_type是加密类型，一般为md5<br/>6:错误信息提示为DIRECT_PAY_AMOUNT_OUT_OF_RANGE，属于快速付款交易总金额超出最大值限制<br/>快速付款余额支付最大限制为：2000，用卡没限制<br/>7:错误信息提示为HASH_NO_PRIVILEGE，属于没有权限访问该服务<br/>查看service参数和卖家支付宝帐号所拥有的权限是不是一致<br/>8:错误信息提示为DONATE_GREATER_THAN_MAX，属于小额捐赠总金额超出最大值限制<br/>小额捐赠一般现在为100<br/>9:错误信息提示为OUT_TRADE_NO_EXIST，属于外部交易号已经存在<br/>外部交易号重复<br/>10:错误信息提示为TRADE_NOT_EXIST，属于交易不存在<br/>11:错误信息提示为ILLEGAL_PAYMENT_TYPE，属于无效支付类型<br/>查看有没有PAYMENT_TYPE参数，是不是对的<br/>12:错误信息提示为BUYER_NOT_EXIST，属于买家不存在<br/>查看buyer_email的帐号是不是支付宝帐号<br/>13:错误信息提示为SELLER_NOT_EXIST，属于卖家不存在<br/>seller_email的帐号是不是支付宝帐号<br/>14:错误信息提示为BUYER_SELLER_EQUAL，属于买家、卖家是同一帐户<br/>同一个支付宝帐号不能同为买家和卖家<br/>15:错误信息提示为ILLEGAL_LOGISTICS_FORMAT，属于无效物流格式<br/>只有三种物流类型：EMS，POST，EXPRESS，即为EMS，平邮，其他快递<br/>16:错误信息提示为TOTAL_FEE_LESSEQUAL_ZERO，属于交易总金额小于等于0<br/>price或者total_fee不能小于等于0<br/>17:错误信息提示为TOTAL_FEE_OUT_OF_RANGE，属于交易总金额超出范围<br/>18:错误信息提示为ILLEGAL_FEE_PARAM，属于非法交易金额格式<br/>price或者total_fee的值是否规范&nbsp;<br/><br/><img src="http://www.fenglog.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.fenglog.com/attachments/month_1004/c2010428222232.rar" target="_blank">点击下载此文件</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=431</link>
			<title><![CDATA[【转】.net面试问答（大汇总）]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Fri,23 Apr 2010 16:46:49 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=431</guid>	
		<description><![CDATA[用.net做B/S结构的系统，您是用几层结构来开发，每一层之间的关系以及为什么要这样分层？&nbsp;<br/>答：<br/><br/>从下至上分别为：数据访问层、业务逻辑层（又或成为领域层）、表示层&nbsp;<br/>数据访问层：有时候也称为是持久层，其功能主要是负责数据库的访问&nbsp;<br/>业务逻辑层：是整个系统的核心，它与这个系统的业务（领域）有关&nbsp;<br/>表示层：是系统的UI部分，负责使用者与整个系统的交互。&nbsp;&nbsp;<br/>优点：&nbsp;&nbsp;分工明确，条理清晰，易于调试，而且具有可扩展性。&nbsp;<br/>缺点：&nbsp;&nbsp;增加成本。&nbsp;<br/><br/>分层式结构究竟其优势何在？&nbsp;<br/>1、开发人员可以只关注整个结构中的其中某一层；&nbsp;<br/>2、可以很容易的用新的实现来替换原有层次的实现；&nbsp;<br/>3、可以降低层与层之间的依赖；&nbsp;<br/>4、有利于标准化；&nbsp;<br/>5、利于各层逻辑的复用。&nbsp;<br/>概括来说，分层式设计可以达至如下目的：分散关注、松散耦合、逻辑复用、标准定义。&nbsp;<br/><br/>分层式结构也不可避免具有一些缺陷：&nbsp;<br/>&nbsp;1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构，很多业务可以直接造访数据库，以此获取相应的数据，如今却必须通过中间层来完成。&nbsp;<br/>2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能，为保证其设计符合分层式结构，可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。&nbsp;<br/><br/>MVC模式&nbsp;<br/><br/>MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、控制器三种部件&nbsp;<br/><br/>mvc的优点：&nbsp;<br/><br/>1.通过把项目分成model&nbsp;view和controller，使得复杂项目更加容易维护。&nbsp;<br/><br/>2.没有使用view&nbsp;state和服务器表单控件，可以更方便的控制应用程序的行为&nbsp;<br/><br/>3.应用程序通过controller来控制程序请求，可以提供丰富的url重写。&nbsp;<br/><br/>4.对单元测试的支持更加出色&nbsp;<br/><br/>5.在团队开发模式下表现更出众&nbsp;<br/><br/>MVC的不足：&nbsp;<br/><br/>（1）增加了系统结构和实现的复杂性。对于简单的界面，严格遵循MVC，使模型、视图与控制器分离，会增加结构的复杂性，并可能产生过多的更新操作，降低运行效率。&nbsp;&nbsp;&nbsp;&nbsp;<br/>（2）视图与控制器间的过于紧密的连接。视图与控制器是相互分离，但确实联系紧密的部件，视图没有控制器的存在，其应用是很有限的，反之亦然，这样就妨碍了他们的独立重用。&nbsp;&nbsp;&nbsp;&nbsp;<br/>（3）视图对模型数据的低效率访问。依据模型操作接口的不同，视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问，也将损害操作性能。&nbsp;<br/><br/>asp.net如何实现MVC模式，举例说明！&nbsp;<br/><br/>web/business/dataaccess<br/><br/>&nbsp;<br/><br/>列举ASP.NET&nbsp;页面之间传递值的几种方式。&nbsp;<br/>1.使用QueryString,&nbsp;如....?id=1;&nbsp;response.&nbsp;Redirect()....&nbsp;<br/>2.使用Session变量&nbsp;<br/>3.使用Server.Transfer&nbsp;<br/><br/>请说明在.net中常用的几种页面间传递参数的方法，并说出他们的优缺点。&nbsp;<br/>session(viewstate)&nbsp;简单，但易丢失&nbsp;<br/>application&nbsp;全局&nbsp;<br/>cookie&nbsp;简单，但可能不支持，可能被伪造&nbsp;<br/>input&nbsp;ttype=&#34;hidden&#34;&nbsp;简单，可能被伪造&nbsp;<br/>url参数简单，显示于地址栏，长度有限&nbsp;<br/>数据库稳定，安全，但性能相对弱&nbsp;<br/><br/>列举ADO.NET中的五个主要对象，并简单描述&nbsp;<br/><br/>connection,command,dataReader,trans,dataset&nbsp;...&nbsp;<br/>Connection&nbsp;对象主要是开启程序和数据库之间的连结&nbsp;<br/>Command&nbsp;对象主要可以用来对数据库发出一些指令，例如可以对数据库下达查询、新增、修改、删除数据等指令&nbsp;<br/>DataSetCommand&nbsp;对象主要是在数据源以及DataSet&nbsp;之间执行数据传输的工作&nbsp;<br/>DataSet&nbsp;这个对象可以视为一个暂存区（Cache），可以把从数据库中所查询到的数据保留起来&nbsp;<br/>DataReader对象只是一次一笔向下循序的读取数据源中的数据，而且这些数据是只读的，并不允许作其它的操作。<br/><br/>因为DataReader&nbsp;在读取数据的时候限制了每次只读取一笔，而且只能只读，所以使用起来不但节省资源而且&nbsp;<br/><br/>效率很好。使用DataReader&nbsp;对象除了效率较好之外，因为不用把数据全部传回，故可以降低网络的负载。&nbsp;<br/><br/>ADO.net中常用的对象有哪些？分别描述一下。&nbsp;<br/>答：&nbsp;<br/>Connection&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开数据库连接&nbsp;<br/>Command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;执行数据库命令&nbsp;<br/>DataAdapter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;连接数据，执行数据库命令，填充DataSet&nbsp;<br/>DataSet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据在内存中的缓存，数据结构&nbsp;<br/>DataReader&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只读向前的读取数据库&nbsp;<br/><br/>DataReader和DataSet的异同&nbsp;<br/>DataReader和DataSet最大的区别在于&nbsp;<br/>DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..&nbsp;<br/>DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...&nbsp;<br/><br/>.net中读写数据库需要用到那些类？他们的作用？&nbsp;<br/>答：DataSet:数据存储器。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DataCommand:执行语句命令。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DataAdapter:数据的集合，用语填充。&nbsp;<br/><br/>存储过程和sql语句的优缺点&nbsp;<br/>答：&nbsp;<br/>存储过程的优缺点：&nbsp;<br/><br/>优点：&nbsp;<br/>1.由于应用程序随着时间推移会不断更改，增删功能，T－SQL过程代码会变得更复杂，StoredProcedure为封装此代码提供了一个替换位置。&nbsp;<br/><br/>2.执行计划（存储过程在首次运行时将被编译，这将产生一个执行计划－－&nbsp;实际上是&nbsp;Microsoft&nbsp;SQL&nbsp;Server为在存储过程中获取由&nbsp;T-SQL&nbsp;指定的结果而必须采取的步骤的记录。）缓存改善性能。........但sql&nbsp;server新版本，执行计划已针对所有&nbsp;T-SQL&nbsp;批处理进行了缓存，而不管它们是否在存储过程中，所以没比较优势了。&nbsp;<br/><br/>3.存储过程可以用于降低网络流量，存储过程代码直接存储于数据库中，所以不会产生大量T-sql语句的代码流量。&nbsp;<br/><br/>4.使用存储过程使您能够增强对执行计划的重复使用，由此可以通过使用远程过程调用&nbsp;(RPC)&nbsp;处理服务器上的存储过程而提高性能。RPC&nbsp;封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划，并只需插入更新的参数值。&nbsp;<br/><br/>5.可维护性高，更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。&nbsp;<br/><br/>6.代码精简一致，一个存储过程可以用于应用程序代码的不同位置。&nbsp;<br/><br/>7.更好的版本控制，通过使用&nbsp;Microsoft&nbsp;Visual&nbsp;SourceSafe&nbsp;或某个其他源代码控制工具，您可以轻松地恢复到或&nbsp;<br/><br/>引用旧版本的存储过程。&nbsp;<br/><br/>8.增强安全性：&nbsp;<br/>a、通过向用户授予对存储过程（而不是基于表）的访问权限，它们可以提供对特定数据的访问；&nbsp;<br/>b、提高代码安全，防止&nbsp;SQL注入（但未彻底解决，例如，将数据操作语言－－DML，附加到输入参数）；&nbsp;<br/>c、SqlParameter&nbsp;类指定存储过程参数的数据类型，作为深层次防御性策略的一部分，可以验证用户提供的值类型（但也不是万无一失，还是应该传递至数据库前得到附加验证）。&nbsp;<br/><br/>缺点：&nbsp;<br/><br/>1.如果更改范围大到需要对输入存储过程的参数进行更改，或者要更改由其返回的数据，则您仍需要更新程序集中的代码以添加参数、更新&nbsp;GetValue()&nbsp;调用，等等，这时候估计比较繁琐了。&nbsp;<br/><br/>2.可移植性差&nbsp;<br/><br/>由于存储过程将应用程序绑定到&nbsp;SQL&nbsp;Server，因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要，则将业务逻辑封装在不特定于&nbsp;RDBMS&nbsp;的中间层中可能是一个更佳的选择。&nbsp;<br/><br/>Sql语句灵活，可移植性强，查询速度比存储过程慢些&nbsp;<br/><br/>说出你所了解的数据库访问组件(例如ADO，至少4种)&nbsp;<br/>答：ADO，ADO.Net，MDAC(Microsoft&nbsp;Data&nbsp;Access&nbsp;Components)，Microsoft&nbsp;SQL&nbsp;Server&nbsp;OLE&nbsp;DB&nbsp;Provider，&nbsp;<br/><br/>Microsoft&nbsp;Jet&nbsp;OLE&nbsp;DB&nbsp;Provider，Desktop&nbsp;Database&nbsp;Drivers&nbsp;ODBC&nbsp;Driver，Visual&nbsp;FoxPro&nbsp;ODBC&nbsp;Driver&nbsp;<br/><br/><br/>阐述面向接口、面向对象、面向方面编程的区别&nbsp;<br/><br/>面向接口更关注的是概念，它的原则是先定义好行为规范，再根据行为规范创建实现，严格的来说，面向接口应&nbsp;<br/><br/>该是面向对象中的一部分吧，因为面向对象也强调的是本末倒置原则，也就是实现依赖于抽象，而抽象不依赖于&nbsp;<br/><br/>具体实现，更具比较的应该是面向接口与面向抽象对象，我的体会是面向接口更加灵活，但实现时候，稍微有些&nbsp;<br/><br/>代码冗余，而面向抽象可以结合面向接口，先定义接口，再定义抽象类，在抽象类中处理一些公共逻辑，再实现&nbsp;<br/><br/>具体实现类。面向对象是对复杂问题的分解。面向方面的编程是一种新概念，它解决了很多面向对象无法解决的&nbsp;<br/><br/>问题，比如面向对象技术只能对业务相关的代码模块化，而无法对和业务无关的代码模块化。而面向方面正是解&nbsp;<br/><br/>决这一问题的方案，它的关键思想是&#34;将应用程序中的商业逻辑与对其提供支持的通用服务进行分离&#34;。&nbsp;<br/><br/>什么是面向对象&nbsp;<br/>万物都是对象，其主要特征：封装、继承、多态<br/><br/>怎样实现多态&nbsp;&nbsp;<br/><br/>1.通过对象直接调用成员函数时，始终默认使用该对象的类的成员函数（除非用::显示指定类名）。<br/><br/>2.通过指向对象的指针或引用调用成员函数时：如果该函数是实函数，则调用该指针或引用的类的成员函数；如果该函&nbsp;<br/><br/>数是虚函数，则调用该指针或引用指向的对象的类的成员函数。&nbsp;<br/><br/>面向对象的思想主要包括什么？&nbsp;<br/>答：任何事物都可以理解为对象，其主要特征：&nbsp;继承。封装。多态。特点：代码好维护，安全，隐藏信息&nbsp;<br/><br/>什么是Interface？它与Abstract&nbsp;Class有什么区别？&nbsp;<br/><br/>接口(Interface)是用来定义行为规范的，不会有具体实现，而抽象类除定义行为规范外，可以有部分实现，但一&nbsp;<br/><br/>个类能实现多个接口，但只能继承一个父类&nbsp;<br/><br/>什么是抽象类（abstract&nbsp;class）?&nbsp;<br/>答：一种不可以被实例化的类。抽象类中一般含有抽象方法，当然也可有具体实现。继承类只有实现过所有抽象&nbsp;<br/><br/>类的抽象方法后才能被实例化。&nbsp;<br/><br/>接口（interface）是什么？&nbsp;<br/>答：只含有公有抽象方法（public&nbsp;abstract&nbsp;method）的类。这些方法必须在子类中被实现。&nbsp;<br/><br/>为什么不能指定接口中方法的修饰符？&nbsp;<br/>答：接口中的方法用来定义对象之间通信的契约，指定接口中的方法为私有或保护没有意义。它们默认为公有方法。&nbsp;<br/><br/>接口和抽象类的区别是什么？&nbsp;<br/>答：接口用于规范，抽象类用于共性。接口中只能声明方法，属性，事件，索引器。而抽象类中可以有方法的实&nbsp;<br/><br/>现，也可以定义非静态的类变量。抽象类是类，所以只能被单继承，但是接口却可以一次实现多个。抽象类可以&nbsp;<br/><br/>提供某些方法的部分实现，接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。&nbsp;<br/><br/>再抽象类中加入一个方法，那么它的子类就同时有了这个方法。而在接口中加入新的方法，那么实现它的类就要&nbsp;<br/><br/>重新编写（这就是为什么说接口是一个类的规范了）。接口成员被定义为公共的，但抽象类的成员也可以是私有&nbsp;<br/><br/>的、受保护的、内部的或受保护的内部成员（其中受保护的内部成员只能在应用程序的代码或派生类中访问）。&nbsp;<br/><br/>此外接口不能包含字段、构造函数、析构函数、静态成员或常量。&nbsp;<br/><br/>什么时候使用抽象类，什么时候用接口&nbsp;<br/>答：接口用于规范，抽象类用于共性。接口中只能声明方法，属性，事件，索引器。而抽象类中可以有方法的实&nbsp;<br/><br/>现，也可以定义非静态的类变量。抽象类是类，所以只能被单继承，但是接口却可以一次实现多个。抽象类可以&nbsp;<br/><br/>提供某些方法的部分实现，接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。&nbsp;<br/><br/>再抽象类中加入一个方法，那么它的子类就同时有了这个方法。而在接口中加入新的方法，那么实现它的类就要&nbsp;<br/><br/>重新编写（这就是为什么说接口是一个类的规范了）。接口成员被定义为公共的，但抽象类的成员也可以是私有&nbsp;<br/><br/>的、受保护的、内部的或受保护的内部成员（其中受保护的内部成员只能在应用程序的代码或派生类中访问）。&nbsp;<br/><br/>此外接口不能包含字段、构造函数、析构函数、静态成员或常量。<br/><br/>请详述在dotnet中类(class)与结构(struct)的异同？&nbsp;<br/>答：Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.&nbsp;<br/>详述.NET里class和struct的异同！&nbsp;<br/><br/>结构具有以下特点：&nbsp;<br/>结构是值类型，而类是引用类型。&nbsp;<br/>向方法传递结构时，结构是通过传值方式传递的，而不是作为引用传递的。&nbsp;<br/>与类不同，结构的实例化可以不使用&nbsp;new&nbsp;运算符。&nbsp;<br/>结构可以声明构造函数，但它们必须带参数。&nbsp;<br/><br/>一个结构不能从另一个结构或类继承，而且不能作为一个类的基。&nbsp;<br/>所有结构都直接继承自&nbsp;System.ValueType，后者继承自&nbsp;System.Object。&nbsp;<br/>结构可以实现接口。&nbsp;<br/>在结构中初始化实例字段是错误的。&nbsp;<br/><br/>类与结构的差别&nbsp;<br/>1.&nbsp;值类型与引用类型&nbsp;<br/>结构是值类型：值类型在堆栈上分配地址，所有的基类型都是结构类型&nbsp;<br/>例如：int&nbsp;对应System.int32&nbsp;结构，string&nbsp;对应&nbsp;system.string&nbsp;结构&nbsp;，通过使用结构可以创建更多的值类型&nbsp;<br/>类是引用类型：引用类型在堆上分配地址&nbsp;堆栈的执行效率要比堆的执行效率高&nbsp;<br/>可是堆栈的资源有限，不适合处理大的逻辑复杂的对象。&nbsp;<br/>所以结构处理作为基类型对待的小对象，而类处理某个商业逻辑&nbsp;<br/>因为结构是值类型所以结构之间的赋值可以创建新的结构，而类是引用类型，类之间的赋值只是复制引用&nbsp;注：&nbsp;<br/>1.虽然结构与类的类型不一样，可是他们的基类型都是对象（object）,c#中所有类型的基类型都是object&nbsp;<br/>2.虽然结构的初始化也使用了New&nbsp;操作符可是结构对象依然分配在堆栈上而不是堆上&nbsp;<br/>如果不使用“新建”(new)，那么在初始化所有字段之前，字段将保持未赋值状态，且对象不可用&nbsp;<br/>2．继承性&nbsp;<br/>结构：不能从另外一个结构或者类继承，本身也不能被继承&nbsp;<br/>虽然结构没有明确的用sealed声明，可是结构是隐式的sealed&nbsp;.&nbsp;<br/>类：完全可扩展的，除非显示的声明sealed&nbsp;否则类可以继承其他类和接口，自身也能被继承&nbsp;<br/>注：虽然结构不能被继承&nbsp;可是结构能够继承接口，方法和类继承接口一样&nbsp;<br/>例如:结构实现接口&nbsp;<br/>interface&nbsp;IImage&nbsp;<br/>{&nbsp;<br/>void&nbsp;Paint();&nbsp;<br/>}&nbsp;<br/>struct&nbsp;Picture&nbsp;:&nbsp;IImage&nbsp;<br/>{&nbsp;<br/>public&nbsp;void&nbsp;Paint()&nbsp;<br/>{&nbsp;<br/>//&nbsp;painting&nbsp;code&nbsp;goes&nbsp;here&nbsp;<br/>}&nbsp;<br/>private&nbsp;int&nbsp;x,&nbsp;y,&nbsp;z;&nbsp;//&nbsp;other&nbsp;struct&nbsp;members&nbsp;<br/>}&nbsp;<br/><br/>3．内部结构：&nbsp;<br/>结构：&nbsp;<br/>没有默认的构造函数，但是可以添加构造函数&nbsp;<br/>没有析构函数&nbsp;<br/>没有&nbsp;abstract&nbsp;和&nbsp;sealed(因为不能继承)&nbsp;<br/>不能有protected&nbsp;修饰符&nbsp;<br/>可以不使用new&nbsp;初始化&nbsp;<br/>在结构中初始化实例字段是错误的&nbsp;<br/>类：&nbsp;<br/>有默认的构造函数&nbsp;<br/>有析构函数&nbsp;<br/>可以使用&nbsp;abstract&nbsp;和&nbsp;sealed&nbsp;<br/>有protected&nbsp;修饰符&nbsp;<br/>必须使用new&nbsp;初始化&nbsp;<br/><br/>如何选择结构还是类&nbsp;<br/>1．&nbsp;堆栈的空间有限，对于大量的逻辑的对象，创建类要比创建结构好一些&nbsp;<br/>2．&nbsp;结构表示如点、矩形和颜色这样的轻量对象&nbsp;<br/>例如，如果声明一个含有&nbsp;1000&nbsp;个点对象的数组，则将为引用每个对象分配附加的内存。&nbsp;<br/>在此情况下，结构的成本较低。&nbsp;<br/>3．&nbsp;在表现抽象和多级别的对象层次时，类是最好的选择&nbsp;<br/>4．&nbsp;大多数情况下该类型只是一些数据时，结构时最佳的选择&nbsp;<br/><br/>C#中的接口和类有什么异同。&nbsp;<br/>答：&nbsp;<br/>异：&nbsp;<br/>不能直接实例化接口。&nbsp;<br/>接口不包含方法的实现。&nbsp;<br/>接口、类和结构可从多个接口继承。但是C#&nbsp;只支持单继承：类只能从一个基类继承实现。&nbsp;<br/>类定义可在不同的源文件之间进行拆分。&nbsp;<br/>同：&nbsp;<br/>接口、类和结构可从多个接口继承。&nbsp;<br/>接口类似于抽象基类：继承接口的任何非抽象类型都必须实现接口的所有成员。&nbsp;<br/>接口可以包含事件、索引器、方法和属性。&nbsp;<br/>一个类可以实现多个接口。&nbsp;<br/><br/>什么是抽象类（abstract&nbsp;class）？&nbsp;<br/>一种不可以被实例化的类。抽象类中一般含有抽象方法，当然也可有具体实现。继承类只有实现过所有抽&nbsp;<br/><br/>象类的抽象方法后才能被实例化。&nbsp;<br/><br/>何时必须声明一个类为抽象类？&nbsp;<br/>当这个类中包含抽象方法时，或是该类并没有完全实现父类的抽象方法时。&nbsp;<br/><br/>接口（interface）是什么？&nbsp;<br/>只含有共有抽象方法（public&nbsp;abstract&nbsp;method）的类。这些方法必须在子类中被实现。&nbsp;<br/><br/>为什么不能指定接口中方法的修饰符？&nbsp;<br/>接口中的方法用来定义对象之间通信的契约，指定接口中的方法为私有或保护没有意义。他们默认为公有方法。&nbsp;<br/><br/>可以继承多个接口么？&nbsp;<br/>当然。&nbsp;<br/><br/>那么如果这些接口中有重复的方法名称呢？&nbsp;<br/>这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。&nbsp;<br/><br/>接口和抽象类的区别是什么？&nbsp;<br/>接口中所有方法必须是抽象的，并且不能指定方法的访问修饰符。抽象类中可以有方法的实现，也可以指&nbsp;<br/><br/>定方法的访问修饰符。&nbsp;<br/><br/>const和readonly有什么区别？&nbsp;<br/>const关键字用来声明编译时常量，readonly用来声明运行时常量。&nbsp;<br/><br/>解释virtual、sealed、override和abstract的区别&nbsp;<br/>（virtual申明虚方法的关键字，说明该方法可以被重写，sealed说明该类不可被继承，override重写基&nbsp;<br/><br/>类的方法，abstract申明抽象类和抽象方法的关键字，抽象方法不提供实现，由子类实现，抽象类不可实&nbsp;<br/><br/>例化。）&nbsp;<br/><br/>C#中的委托是什么？事件是不是一种委托？&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。是，是一种特殊的委托&nbsp;<br/><br/>什么是Interface？它与Abstract&nbsp;Class有什么区别？&nbsp;<br/><br/>接口(Interface)是用来定义行为规范的，不会有具体实现，而抽象类除定义行为规范外，可以有部分实现，但一个类能实现多个接口，但只能继承一个父类&nbsp;<br/><br/>什么是反射?&nbsp;<br/><br/>程序集包含模块，而模块又包括类型，类型下有成员，反射就是管理程序集，模块，类型的对象，它能够&nbsp;<br/><br/>动态的创建类型的实例，设置现有对象的类型或者获取现有对象的类型，能调用类型的方法和访问类型的&nbsp;<br/><br/>字段属性。它是在运行时创建和使用类型实例&nbsp;<br/><br/>&nbsp;<br/><br/>C#中所有对象共同的基类是什么？&nbsp;<br/>System.Object.&nbsp;<br/><br/>如何在C#中实现继承？&nbsp;<br/>在类名后加上一个冒号，再加上基类的名称。&nbsp;<br/><br/>C#支持多重继承吗？&nbsp;<br/>不支持。可以用接口来实现。&nbsp;<br/><br/>被protected修饰的属性/方法在何处可以访问？&nbsp;<br/>在继承或间接继承与这个类的子类中可以访问。&nbsp;<br/><br/>私有成员会被继承么？&nbsp;<br/>会，但是不能被访问。所以看上去他们似乎是不能被继承的，但实际上确实被继承了。&nbsp;<br/><br/>C#提供一个默认的无参构造函数，当我实现了另外一个有一个参数的构造函数时，还想保留这个无参数的构&nbsp;<br/><br/>造函数。这样我应该写几个构造函数？&nbsp;<br/>答：两个，一旦你实现了一个构造函数，C#就不会再提供默认的构造函数了，所以需要手动实现那个无参构造&nbsp;<br/><br/>函数。&nbsp;<br/><br/>重载和覆写有什么区别？&nbsp;<br/>答：重载是方法的名称相同,不同的参数类型，不同的参数个数，不同的参数顺序。覆写提供了子类中改变父类方法行为的实现(是进行基类中函数的重写)。&nbsp;<br/><br/>在方法定义中，virtual有什么含义？&nbsp;<br/>答：被virtual修饰的方法可以被子类覆写&nbsp;<br/><br/>能够将非静态的方法覆写成静态方法吗？&nbsp;<br/>答：不能，覆写方法的签名必须与被覆写方法的签名保持一致，除了将virtual改为override。&nbsp;<br/><br/>可以覆写私有的虚方法吗？&nbsp;<br/>答：不可以，甚至子类中无法访问父类中的私有方法&nbsp;<br/><br/>能够阻止某一个类被其他类继承吗？&nbsp;<br/>答：可以，使用关键字sealed&nbsp;<br/><br/>能够实现允许某个类别继承，但不允许其中的某个方法被覆写吗？&nbsp;<br/>答：可以，标记这个类为public，并标记这个方法为sealed。&nbsp;<br/><br/>如何区别重载方法？&nbsp;<br/>不同的参数类型，不同的参数个数，不同的参数顺序&nbsp;<br/><br/>&nbsp;&nbsp;<br/><br/>简述&nbsp;private、&nbsp;protected、&nbsp;public、&nbsp;internal&nbsp;修饰符的访问权限。&nbsp;<br/>private&nbsp;:&nbsp;私有成员,&nbsp;在类的内部才可以访问。&nbsp;<br/>protected&nbsp;:&nbsp;保护成员，该类内部和继承类中可以访问。&nbsp;<br/>public&nbsp;:&nbsp;公共成员，完全公开，没有访问限制。&nbsp;<br/>internal:&nbsp;在同一命名空间内可以访问。&nbsp;<br/><br/>new的两种用法&nbsp;<br/>答：实例话对象，隐藏基类方法。<br/><br/>.new有几种用法&nbsp;<br/>第一种:new&nbsp;Class();&nbsp;<br/><br/>第二种:覆盖方法&nbsp;<br/><br/>public&nbsp;new&nbsp;XXXX(){}&nbsp;<br/><br/>第三种:new&nbsp;约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。&nbsp;<br/><br/>3.datagrid.datasouse可以连接什么数据源&nbsp;[dataset,datatable,dataview]&nbsp;<br/><br/>dataset,datatable,dataview&nbsp;,&nbsp;IList&nbsp;<br/><br/>类成员有(&nbsp;)种可访问形式&nbsp;<br/><br/>可访问性：public&nbsp;,protected&nbsp;,private,internal&nbsp;<br/><br/>用sealed修饰的类有什么特点&nbsp;<br/>sealed&nbsp;修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类，则会发生编译时错误。&nbsp;<br/>密封类不能同时为抽象类。&nbsp;<br/>sealed&nbsp;修饰符主要用于防止非有意的派生，但是它还能促使某些运行时优化。具体说来，由于密封类永&nbsp;<br/><br/>远不会有任何派生类，所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。<br/><br/>虚函数的用法&nbsp;<br/>答：&nbsp;<br/>1)virtual指明一成员函数为虚函数,而virtual仅用于类的定义里,在类外可不加此关键字.&nbsp;<br/>2)一个类的成员函数被定义为虚函数时,子类该函数仍保持虚函数特征.&nbsp;<br/>3)子类覆盖此函数时,定义里可不加virtual关键字,但函数声明要和基类的完全一致!且此声明是必须的.&nbsp;<br/>4)不是纯虚函数时,父类的虚函数必须要实现;&nbsp;而若将父类的虚函数设定为纯虚函数时,子类必需要覆盖之而且必&nbsp;<br/><br/>须要实现之!&nbsp;<br/><br/>委托与事件的用法&nbsp;<br/>答：public&nbsp;delegate&nbsp;void&nbsp;handels();//返回值是void，没有参数&nbsp;<br/>public&nbsp;event&nbsp;handels&nbsp;eventHandels;&nbsp;<br/>his.eventHandels&nbsp;=&nbsp;new&nbsp;handels(fun);&nbsp;<br/>public&nbsp;void&nbsp;fun()&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;}&nbsp;<br/><br/>&nbsp;<br/><br/>传入某个属性的SET方法的隐含参数的名称是什么？&nbsp;<br/>答：value，它的类型和属性所声明的类型相同。<br/><br/>string是值类型还是引用类型?&nbsp;<br/><br/>引用类型&nbsp;<br/><br/>String类与StringBuilder类有什么区别？为什么在.Net类库中要同时存在这2个类？(简答)&nbsp;<br/><br/>stringBuilder比string更节约内存,所以stringBuilder更快&nbsp;<br/><br/>String&nbsp;对象是不可改变的。每次使用&nbsp;System.String&nbsp;类中的方法之一或进行运算时（如赋值、拼接等）时，都要&nbsp;<br/><br/>在内存中创建一个新的字符串对象，这就需要为该新对象分配新的空间。而&nbsp;StringBuilder&nbsp;则不会。在需要对字&nbsp;<br/><br/>符串执行重复修改的情况下，与创建新的&nbsp;String&nbsp;对象相关的系统开销可能会非常昂贵。如果要修改字符串而不&nbsp;<br/><br/>创建新的对象，则可以使用&nbsp;System.Text.StringBuilder&nbsp;类。例如，当在一个循环中将许多字符串连接在一起时&nbsp;<br/><br/>，使用&nbsp;StringBuilder&nbsp;类可以提升性能。&nbsp;<br/><br/>System.String&nbsp;和System.StringBuilder有什么区别？&nbsp;<br/>System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串，并提供一些对这个字符串修&nbsp;<br/><br/>改的方法。<br/><br/>在C＃中，string&nbsp;str&nbsp;=&nbsp;null&nbsp;与&nbsp;string&nbsp;str&nbsp;=&nbsp;“”&nbsp;请尽量使用文字或图象说明其中的区别。&nbsp;<br/>答：string&nbsp;str&nbsp;=&nbsp;null&nbsp;是不给他分配内存空间,而string&nbsp;str&nbsp;=&nbsp;&#34;&#34;&nbsp;给它分配长度为空字符串的内存空间。&nbsp;<br/><br/>什么是装箱和拆箱？&nbsp;<br/>答：从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。装箱（boxing）是将值类型的数据转化成引用类型，int&nbsp;i=3;&nbsp;object&nbsp;o&nbsp;=&nbsp;i&nbsp;;便是装箱过程，而拆箱(unboxing)是将饮用类型数据转换值类型,比如int&nbsp;j&nbsp;=&nbsp;(int)o；属于拆箱&nbsp;<br/><br/>ASP.net的身份验证方式有哪些？分别是什么原理？&nbsp;<br/>答：Windwos(默认)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用IIS...From(窗体)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用帐户....Passport(密钥)&nbsp;<br/>Session有什么重大BUG，微软提出了什么方法加以解决？&nbsp;<br/>答：是iis中由于有进程回收机制，系统繁忙的话Session会丢失，可以用Sate&nbsp;server或SQL&nbsp;Server数据库的方式存储Session不过这种方式比较慢，而且无法捕获Session的END事件<br/><br/>c#中的三元运算符是&nbsp;？：&nbsp;<br/><br/>.能用foreach遍历访问的对象需要实现()&nbsp;接口或声明&nbsp;(&nbsp;GetEnumerator)方法的类型。&nbsp;<br/><br/>.&lt;%#&nbsp;%&gt;&nbsp;和&nbsp;&lt;%&nbsp;%&gt;&nbsp;有什么区别？&nbsp;<br/><br/>&lt;%#&nbsp;%&gt;表示绑定的数据源&nbsp;&lt;%&nbsp;%&gt;是服务器端代码块&nbsp;常量&nbsp;<br/><br/>在.net（C#&nbsp;o&#114;&nbsp;vb.net）中如何获得当前窗体或控件的句柄，特别是控件本身的句柄（请列举）<br/><br/>this(C#)&nbsp;Me(vb.net).<br/><br/>.C#可否对内存进行直接的操作？&nbsp;<br/><br/>在.net下，.net引用了垃圾回收（GC）功能，它替代了程序员&nbsp;不过在C#中，不能直接实现Finalize方法，而是在析构函数中调用基类的Finalize()方法<br/><br/>DateTime是否可以为null?&nbsp;不能，因为其为Struct类型，而结构属于值类型，值类型不能为null,只有引用类型才能被赋值null&nbsp;<br/><br/>DateTime.Parse(myString);&nbsp;这行代码有什么问题？&nbsp;<br/><br/>有问题，当myString不能满足时间格式要求的时候，会引发异常，建议使用DateTime.TryParse()&nbsp;<br/><br/><br/>net的错误处理机制是:<br/><br/>采用try-&gt;catch-&gt;finally结构，&nbsp;<br/><br/>为什么不提倡catch(Exception)&nbsp;<br/>try..catch在出现异常的时候影响性能;&nbsp;应该捕获更具体得异常，比如IOExeception,OutOfMemoryException等&nbsp;<br/><br/>catch(Exception&nbsp;e){throw&nbsp;e;}和catch(Exception&nbsp;e){throw;}的区别&nbsp;<br/><br/>将发生的异常对象抛出，另一个只是抛出异常，并没有抛出原异常对象）&nbsp;<br/><br/>error和exception区别：&nbsp;<br/><br/>error&nbsp;表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。&nbsp;<br/><br/>exception&nbsp;表示一种设计或实现问题。也就是说，它表示如果程序运行正常，从不会发生的情况。<br/><br/>&nbsp;<br/><br/>.UDP连接和TCP连接的异同&nbsp;<br/>答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.&nbsp;<br/><br/>请解释转发与跳转的区别&nbsp;<br/>转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面&nbsp;<br/>跳转就是指客户端的跳转<br/><br/>&nbsp;<br/><br/>&nbsp;<br/><br/>使用ASMX的XML&nbsp;Web服务与使用SOAP的.NET&nbsp;Remoting的区别?&nbsp;<br/><br/>Web服务使用的消息机制，而Remoting采用的RPC.&nbsp;Web&nbsp;Service能用于不同平台，不同语言，Remoting只适用&nbsp;<br/><br/>于.Net。效率上Remoting高于Xml&nbsp;Web&nbsp;Service&nbsp;<br/><br/>类型系统是由XMLSchema表示的吗？CLS是XMLSchema表示的吗？&nbsp;<br/><br/>不清楚&nbsp;<br/><br/>从概念上阐述前期绑定（early-binding）和后期绑定（late-binding）的区别?&nbsp;<br/><br/>这个就像是强弱类型的比较相似，前期绑定是在编译的时候就确定了要绑定的数据，而后期绑定是在运行的时候&nbsp;<br/><br/>才填充数据。所以前期绑定如果失败，会在编译时报编译错误，而后期绑定失败只有在运行时的时候才发生&nbsp;<br/><br/>调用Assembly.Load算静态引用还是动态引用？&nbsp;<br/><br/>动态&nbsp;<br/><br/>&nbsp;列举一下你所了解的XML技术及其应用&nbsp;<br/>答：保存配置,站与站之间的交流,WEB&nbsp;SERVICE。以及与数据库的数据交互等地方都要用它.&nbsp;<br/>7.如何理解委托？&nbsp;<br/>答：&nbsp;<br/>相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.&nbsp;<br/>委托具有以下特点：&nbsp;<br/>委托类似于&nbsp;C++&nbsp;函数指针，但它是类型安全的。&nbsp;<br/>委托允许将方法作为参数进行传递。&nbsp;<br/>委托可用于定义回调方法。&nbsp;<br/>委托可以链接在一起；例如，可以对一个事件调用多个方法。&nbsp;<br/>方法不需要与委托签名精确匹配。有关更多信息，请参见协变和逆变。&nbsp;<br/>C#&nbsp;2.0&nbsp;版引入了匿名方法的概念，此类方法允许将代码块作为参数传递，以代替单独定义的方法。&nbsp;<br/><br/>简述你对XML&nbsp;Web&nbsp;Service的原理的认识？&nbsp;<br/>答：利用SOAP(简单对象访问协议)在http上执行远程方法的调用，也可以使用WSDL（Web服务描述语言）来&nbsp;<br/><br/>完成完整的描述Web服务，然后用UDDI注册各个服务提供商提供的服务，以便共享他们。&nbsp;<br/><br/>什么叫应用程序域？&nbsp;<br/>答：应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。&nbsp;<br/><br/>CTS、CLS、CLR分别作何解释？&nbsp;<br/>答：CTS：通用语言系统。CLS：通用语言规范。CLR：公共语言运行库。&nbsp;<br/><br/>什么是受管制的代码？&nbsp;<br/>答：unsafe：非托管代码。不经过CLR运行。&nbsp;<br/><br/>什么是强类型系统？&nbsp;<br/>答：RTTI：类型识别系统。&nbsp;<br/><br/>&nbsp;<br/><br/>什么是Code-Behind技术？&nbsp;<br/>答：代码后植。&nbsp;<br/><br/>在.net中，配件的意思是？&nbsp;<br/>答：程序集。（中间语言，源数据，资源，装配清单）&nbsp;<br/><br/>常用的调用WebService的方法有哪些？&nbsp;<br/>答：1.使用WSDL.exe命令行工具。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;2.使用VS.NET中的Add&nbsp;Web&nbsp;Reference菜单选项&nbsp;<br/><br/>net&nbsp;Remoting&nbsp;的工作原理是什么？&nbsp;<br/>答：服务器端向客户端发送一个进程编号，一个程序域编号，以确定对象的位置。&nbsp;<br/><br/>O/R&nbsp;Mapping&nbsp;的原理&nbsp;<br/>答：利用反射，配置将对象和数据库表映射&nbsp;<br/>remoting和webservice两项技术的理解以及实际中的应用。&nbsp;<br/>答：WS主要是可利用HTTP，穿透防火墙。而Remoting可以利用TCP/IP，二进制传送提高效率。&nbsp;<br/><br/>out保留字怎么使用，什么时候使用&nbsp;<br/>答：有时为了从一个函数中返回多个值，我们需要使用out关键字，把输出值赋给通过引用传递给方法的变量（也就是参数）。但C#要求变量再被引用的前必须初始化。在调用该方法时，还需要添加out关键字&nbsp;<br/><br/>PDB是什么东西?&nbsp;在调试中它应该放在哪里？&nbsp;<br/><br/>PDB是用于保存调试和项目状态信息的文件，在debug的时候将产生pdb文件，调试的时候应该放在和对应应用&nbsp;<br/><br/>程序集相同目录。&nbsp;<br/><br/>什么是反射?&nbsp;<br/><br/>程序集包含模块，而模块又包括类型，类型下有成员，反射就是管理程序集，模块，类型的对象，它能够动态的&nbsp;<br/><br/>创建类型的实例，设置现有对象的类型或者获取现有对象的类型，能调用类型的方法和访问类型的字段属性。它&nbsp;<br/><br/>是在运行时创建和使用类型实例&nbsp;&nbsp;<br/><br/>概述反射和序列化&nbsp;<br/><br/>反射:程序集包含模块，而模块包含类型，类型又包含成员。反射则提供了封装程序集、模块和类型的对&nbsp;<br/><br/>象。您可以使用反射动态地创建类型的实例，将类型绑定到现有对象，或从现有对象中获取类型。然后，&nbsp;<br/><br/>可以调用类型的方法或访问其字段和属性&nbsp;<br/><br/>序列化:序列化是将对象转换为容易传输的格式的过程。例如，可以序列化一个对象，然后使用&nbsp;HTTP&nbsp;通&nbsp;<br/><br/>过&nbsp;Internet&nbsp;在客户端和服务器之间传输该对象。在另一端，反序列化将从该流重新构造对象。&nbsp;<br/><br/>11)&nbsp;&nbsp;XmlSerializer是如何工作的？使用这个类的进程需要什么ACL权限？&nbsp;<br/><br/>我只知道XmlSerializer是将对象的属性和字段进行序列化和反序列化的，序列化成为xml数据，反序列化再将xml&nbsp;<br/><br/>转换成对象。应该至少需要ACL权限中的读权限.&nbsp;<br/><br/>23）XmlSerializer使用的针对属性的模式有什么好处？解决了什么问题？&nbsp;<br/><br/>只序列化有用的数据，而不是序列化整个对象。实现没必要的数据冗余，和提升序列化时的性能。<br/><br/>&nbsp;<br/><br/>26.根据委托(delegate)的知识，请完成以下用户控件中代码片段的填写：&nbsp;<br/>namespace&nbsp;test&nbsp;<br/>{&nbsp;<br/>public&nbsp;delegate&nbsp;void&nbsp;OnDBOperate();&nbsp;<br/>public&nbsp;class&nbsp;UserControlBase&nbsp;:&nbsp;System.Windows.Forms.UserControl&nbsp;<br/>{&nbsp;<br/>public&nbsp;event&nbsp;OnDBOperate&nbsp;OnNew;&nbsp;<br/>privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs&nbsp;e)&nbsp;<br/>{&nbsp;<br/>if(e.Button.Equals(BtnNew))&nbsp;<br/>{&nbsp;<br/>//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。&nbsp;<br/>}&nbsp;<br/>}&nbsp;<br/>}&nbsp;<br/>答：if(&nbsp;OnNew&nbsp;!=&nbsp;null&nbsp;)&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;OnNew(&nbsp;this,&nbsp;e&nbsp;);&nbsp;<br/><br/>27.分析以下代码，完成填空&nbsp;<br/>string&nbsp;strTmp&nbsp;=&nbsp;&#34;abcdefg某某某&#34;;&nbsp;<br/>int&nbsp;i=&nbsp;System.Text.Encoding.Default.GetBytes(strTmp).Length;&nbsp;<br/>int&nbsp;j=&nbsp;strTmp.Length;&nbsp;<br/>以上代码执行完后，i=&nbsp;j=&nbsp;<br/>答：i=13,j=10&nbsp;<br/><br/>28.SQLSERVER服务器中，给定表&nbsp;table1&nbsp;中有两个字段&nbsp;ID、LastUp&#100;ateDate，ID表示更新的事务号，&nbsp;<br/><br/>LastUp&#100;ateDate表示更新时的服务器时间，请使用一句SQL语句获得最后更新的事务号&nbsp;<br/>答：Sel&#101;ct&nbsp;ID&nbsp;FROM&nbsp;table1&nbsp;Wh&#101;re&nbsp;LastUp&#100;ateDate&nbsp;=&nbsp;(Sel&#101;ct&nbsp;MAX(LastUp&#100;ateDate)&nbsp;FROM&nbsp;table1)&nbsp;<br/><br/>29.根据线程安全的相关知识，分析以下代码，当调用test方法时i&gt;10时是否会引起死锁?并简要说明理由。&nbsp;<br/>public&nbsp;void&nbsp;test(int&nbsp;i)&nbsp;<br/>{&nbsp;<br/>&nbsp;&nbsp;&nbsp;lock(this)&nbsp;<br/>{&nbsp;<br/>&nbsp;&nbsp;&nbsp;if&nbsp;(i&gt;10)&nbsp;<br/>&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i--;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test(i);&nbsp;<br/>&nbsp;&nbsp;&nbsp;}&nbsp;<br/>}&nbsp;<br/>}&nbsp;<br/>答：不会发生死锁，（但有一点int是按值传递的，所以每次改变的都只是一个副本，因此不会出现死锁。但如果&nbsp;<br/><br/>把int换做一个object，那么死锁会发生）&nbsp;<br/><br/>3）&nbsp;什么叫圈复杂度（cyclomatic&nbsp;complexity）？为什么它很重要？&nbsp;<br/><br/>不知道，望指教&nbsp;？&nbsp;<br/><br/>4）&nbsp;写一个标准的lock()，在访问变量的前后创建临界区，要有&#34;双重检查&#34;，<br/><br/>lock的使用&nbsp;<br/>&nbsp;&nbsp;public&nbsp;void&nbsp;LockTest()&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;lockObj&nbsp;=&nbsp;new&nbsp;Object();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lock&nbsp;(lockObj)&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;//&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>5）&nbsp;什么叫FullTrust？放入GAC的assembly是否是FullTrust的?&nbsp;<br/><br/>FullTrust完全信任。放入GAC中的Assembly是否FullTrust我的理解不是。我理解FullTrust是可以通过代码设定的&nbsp;<br/><br/>6）&nbsp;代码加上需要安全权限的特性有什么好处？&nbsp;<br/><br/>可以更加灵活的设置对代码的访问权限，实现代码级保护。？这点不是特清楚，有明白的给讲解下&nbsp;<br/><br/>7）&nbsp;gacutil&nbsp;/l&nbsp;|&nbsp;find&nbsp;/i&nbsp;&#34;Corillian&#34;&nbsp;这句命令的作用是什么？&nbsp;<br/><br/>全局程序集缓存中如果有Corillian就更新该程序集，没有就安装&nbsp;<br/><br/>8）&nbsp;sn&nbsp;-t&nbsp;foo.dll&nbsp;这句命令是干嘛的？&nbsp;<br/><br/>显示程序集foo.dll的公钥标记&nbsp;<br/><br/>9）&nbsp;DCOM需要防火墙打开哪些端口？端口135是干嘛用的？&nbsp;<br/><br/>135端口，因为DCOM的端口号是随机分配的，默认情况下，会分配1024以上的端口号，所以默认情况下,DCOM&nbsp;<br/><br/>不能穿越防火墙。因为根本不晓得开哪个端口。但有解决办法可以使DCOM分配的端口号固定，135是远程过程&nbsp;<br/><br/>调用(RPC)的默认端口&nbsp;<br/><br/>10）对比OOP和SOA，它们的目的分别是什么？&nbsp;<br/><br/>我想OOP和SOA应该没有对比性吧。OOP是一种编程模型，强调将复杂的逻辑分解出小的模块，特性是继承，封&nbsp;<br/><br/>装和多态&nbsp;。而SOA是一个技术框架，技术框架和编程模型应该说不是一码事吧？SOA的思想是将业务逻辑封装&nbsp;<br/><br/>成服务或者中间件提供给应用程序来调用，当然其组件化思想是继承和发扬了OOP的优点。&nbsp;<br/><br/><br/>13）Debug.Write和Trace.Write有什么不同？何时应该使用哪一个？&nbsp;<br/><br/>Debug.Write是调试的时候向跟踪窗口输出信息。当编译模式为debug的时候才有效，为release的时&nbsp;<br/><br/>候Debug.Write在编译的时候会忽略,而Trace则是在debug和release两种模式下均可以向跟踪窗口输出信息。&nbsp;<br/><br/>14）Debug&nbsp;Build和Release&nbsp;Build的区别，是否会有明显的速度变化？请说明理由。&nbsp;<br/><br/>Debug会产生pdb文件，release不会。Debug用于开发时的调试，不能要于部署，而release用于部署.debug编&nbsp;<br/><br/>译一些特殊代码，比如#IFDEBUG&nbsp;Debug.Write等，而Release则会将那些特殊标记省略&nbsp;<br/><br/>15）JIT是以assembly为单位发生还是以方法为单位发生？这对于工作区有何影响?&nbsp;<br/><br/>方法，道理很简单，因为对于一次运行，很可能只用到一个程序集中极少数类型和对象，而大部分可能并不会被&nbsp;<br/><br/>使用，此时CLR傻乎乎的给整个程序集都给Compile了，CLR不是傻疯了么&nbsp;&nbsp;<br/><br/>17）a.Equals(b)和a&nbsp;==&nbsp;b一样吗？&nbsp;<br/><br/>不一样。a.Equals(b)表示a与b一致，&nbsp;a==b表示a与b的值相等&nbsp;<br/><br/>18）在对象比较中，对象一致和对象相等分别是指什么？&nbsp;<br/><br/>对象一致是指两个对象是同一个对象，引用相同。而对象相等是指两个对象的值相同，但引用不一定相同&nbsp;<br/><br/>19）在.NET中如何实现深拷贝（deep&nbsp;copy）？&nbsp;<br/><br/>实现IClonable接口&nbsp;<br/><br/>20）请解释一下IClonable&nbsp;<br/><br/>IClonable方法是实现深度复制的接口，实现它应该能深度复制一个对象出来。深度复制的特征的调用对象的构造&nbsp;<br/><br/>方法，创建新的对象，包括创建对象中嵌套的引用对象的新实例。而Shadow复制则不同，是浅表复制，不重新&nbsp;<br/><br/>创建新实例。浅表复制的实现是Object.MemberWiseClone().&nbsp;<br/><br/>深度复制(Deep&nbsp;Copy)与浅表复制(Shadow&nbsp;Copy)的比较&nbsp;<br/>&nbsp;&nbsp;public&nbsp;class&nbsp;Name&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;FirstName;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;LastName;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;Person:ICloneable&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Name&nbsp;PersonName;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;Email;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;Deep&nbsp;Copy的例子&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Object&nbsp;Clone()&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p&nbsp;=&nbsp;new&nbsp;Person();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.Email&nbsp;=&nbsp;this.Email;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.PersonName&nbsp;=&nbsp;new&nbsp;Name();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.PersonName.FirstName&nbsp;=&nbsp;this.PersonName.FirstName;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.PersonName.LastName&nbsp;=&nbsp;this.PersonName.LastName;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;p;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;ChangLastName(string&nbsp;lastName)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.PersonName.LastName&nbsp;=&nbsp;lastName;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;Main()&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;p&nbsp;=&nbsp;new&nbsp;Person();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.PersonName&nbsp;=&nbsp;new&nbsp;Name();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.PersonName.LastName&nbsp;=&nbsp;&#34;jill&#34;;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.PersonName.FirstName&nbsp;=&nbsp;&#34;zhang&#34;;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.Email&nbsp;=&nbsp;&#34;jillzhang@126.com&#34;;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;sameNamePerson&nbsp;=&nbsp;p.Clone()&nbsp;as&nbsp;Person;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sameNamePerson.ChangLastName(&#34;clr_&#34;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(p.PersonName.LastName);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(sameNamePerson.PersonName.LastName);&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;Person&nbsp;samePerson&nbsp;=&nbsp;p.MemberwiseClone()&nbsp;as&nbsp;Person;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;samePerson.ChangLastName(&#34;Shadow&#34;);&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(p.PersonName.LastName);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(sameNamePerson.PersonName.LastName);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;<br/><br/>24）为什么不应该在.NET中使用out参数？它究竟好不好?&nbsp;<br/><br/>我挺喜欢用out参数的，特别是当函数需要有多于1个返回的时候，我比较愿意用out，至于它好不好没研究过&nbsp;？&nbsp;<br/><br/>25）特性能够放到某个方法的参数上？如果可以，这有什么用？&nbsp;<br/><br/>可以，作用可以对参数有进一步限定，比如输入参数为int类型，可以通过允许AttributeTargets=ParameterInfo&nbsp;<br/><br/>的Attribute自定义实现来限定输入参数的大小，比如当输入参数小于100的时候便抱错。&nbsp;<br/><br/>对方法的参数设置Attribute的例子&nbsp;<br/>&nbsp;&nbsp;[AttributeUsage(AttributeTargets.Parameter)]&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;ParameterAtt&nbsp;:&nbsp;Attribute&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;Min&nbsp;=&nbsp;100;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;AttributeTest&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;TestMethod([ParameterAtt(Min&nbsp;=&nbsp;100)]&nbsp;int&nbsp;par1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParameterInfo&nbsp;para&nbsp;=&nbsp;MethodInfo.GetCurrentMethod().GetParameters()[0];&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParameterAtt&nbsp;att&nbsp;=&nbsp;ParameterAtt.GetCustomAttribute(para,&nbsp;typeof(ParameterAtt))&nbsp;as&nbsp;<br/><br/>ParameterAtt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(att.Min&nbsp;&gt;&nbsp;par1)&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;throw&nbsp;new&nbsp;Exception(&#34;要求para1最小为&#34;&nbsp;+&nbsp;att.Min);&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;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>&nbsp;<br/><br/><br/>9.执行下面代码后：&nbsp;<br/><br/>String&nbsp;strTemp&nbsp;=&#34;abcdefg&nbsp;某某某&#34;；&nbsp;<br/><br/>Int&nbsp;i&nbsp;System.Text.Encoding.Default.GetBytes(strTemp).Length;&nbsp;<br/><br/>Int&nbsp;j&nbsp;=&nbsp;strTemp.Length;&nbsp;<br/><br/>问：i=(14&nbsp;)&nbsp;；j=(11&nbsp;)&nbsp;<br/><br/>i=(14&nbsp;)&nbsp;；j=(11&nbsp;)&nbsp;中文两个字节&nbsp;<br/><br/>12.概述.NET里对&nbsp;remoting&nbsp;和&nbsp;webservice&nbsp;两项技术的理解和实际中的应用。&nbsp;<br/><br/>远程逻辑调用，remoing接口只能用在.net中&nbsp;<br/><br/>13.什么是code-behind技术&nbsp;<br/>codebehind是指代码和用户界面分开&nbsp;<br/>aspx&nbsp;and&nbsp;cs&nbsp;<br/><br/>9.&nbsp;&nbsp;如何给服务器端控件增加客户端脚本。&nbsp;<br/>答：控件的Attributes&nbsp;<br/><br/>6．&nbsp;私有程序集与共享程序集有什么区别？&nbsp;<br/>一个私有程序集通常为单个应用程序所使用，并且存储于这个应用程序所在的目录之中，或此目录下面的一个子&nbsp;<br/><br/>目录中。共享程序集通常存储在全局程序集缓存（Global&nbsp;Assembly&nbsp;Cache）之中，这是一个由.NET运行时所维&nbsp;<br/><br/>护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库，比如.NET&nbsp;Framework类。&nbsp;<br/><br/>10&nbsp;.请解释ASP.NET中以什么方式进行数据验证&nbsp;<br/>Aps.net&nbsp;中有非空验证，比较验证，取值范围验证，正则表达式验证及客户自定义验证五大控件，另还有一个集&nbsp;<br/><br/>中验证信息处理控件&nbsp;<br/><br/>11．WEB控件可以激发服务端事件，请谈谈服务端事件是怎么发生并解释其原理？自动传回是什么？为什么要&nbsp;<br/><br/>使用自动传回。&nbsp;<br/>在web控件发生事件时，客户端采用提交的形式将数据交回服务端，服务端先调用Page_Load事件,然后根据传&nbsp;<br/><br/>回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时，采用提交表单的形式将数据直接传回&nbsp;<br/><br/>到务端&nbsp;<br/>只有通过自动传回才能实现服务端事件的机制，如果没有自动回传机制就只能调用客户端事件，而不能调用服务&nbsp;<br/><br/>端事件&nbsp;<br/><br/>13．&nbsp;&nbsp;请解释web.config文件中的重要节点&nbsp;<br/>appSettings包含自定义应用程序设置。&nbsp;<br/>system.web&nbsp;系统配置&nbsp;<br/>compilation动态调试编译设置&nbsp;<br/>customErrors自定义错误信息设置&nbsp;<br/>authentication身份验证,此节设置应用程序的身份验证策略。&nbsp;<br/>authorization授权,&nbsp;此节设置应用程序的授权策略.&nbsp;<br/><br/>14．&nbsp;&nbsp;请解释ASP。NET中的web页面与其隐藏类之间的关系？&nbsp;<br/>一个ASP.NET页面一般都对应一个隐藏类,一般都在ASP.NET页面的声明中指定了隐藏类例如一个页面Tst1.aspx&nbsp;<br/><br/>的页面声明如下&nbsp;<br/>&lt;%@&nbsp;Page&nbsp;language=&#34;c#&#34;&nbsp;Codebehind=&#34;Tst1.aspx.cs&#34;&nbsp;AutoEventWireup=&#34;false&#34;&nbsp;Inherits=&#34;T1.Tst1&#34;&nbsp;%&gt;&nbsp;<br/>Codebehind=&#34;Tst1.aspx.cs&#34;&nbsp;表明经编译此页面时使用哪一个代码文件&nbsp;<br/>Inherits=&#34;T1.Tst1&#34;&nbsp;表用运行时使用哪一个隐藏类&nbsp;<br/><br/>15．&nbsp;&nbsp;什么是viewstate，能否禁用？是否所用控件都可以禁用?&nbsp;<br/>Viewstate是保存状态的一种机制，EnableViewState属性设置为false即可禁用&nbsp;<br/><br/>16．&nbsp;&nbsp;当发现不能读取页面上的输入的数据时很有可能是什么原因造成的？怎么解决？&nbsp;<br/>很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断&nbsp;<br/><br/>17．&nbsp;&nbsp;请解释什么是上下文对象，在什么情况下要使用上下文对象&nbsp;<br/>上下文对象是指HttpContext类的Current&nbsp;属性，当我们在一个普通类中要访问内置对&nbsp;<br/><br/>象(Response,Request,Session,Server,Appliction等)时就要以使用此对象&nbsp;<br/><br/><br/>16、解释一下ajax及实现原理&nbsp;<br/>答：Ajax的核心是JavaScript对象XmlHttpRequest，它使您可以使用JavaScript向服务器提出请求并处理响应，&nbsp;而不阻塞用户，异步请求。&nbsp;<br/><br/>const和readonly有什么区别？&nbsp;<br/>const关键字用来声明编译时常量，readonly用来声明运行时常量。&nbsp;<br/><br/>1、delegate是引用类型还是值类型？enum、int[]和string呢（难度系数40%）？&nbsp;<br/><br/>答案：delegate引用类型，enum值类型，int[]引用类型，string引用类型。&nbsp;<br/><br/>2、我们知道new可以调用构造函数创建一个对象，那么new还有什么别的语法吗？&nbsp;<br/><br/>答案：隐藏基类相同签名方法，如果在C#&nbsp;2.0中则还作为泛型构造函数约束。&nbsp;<br/><br/>3、base这个关键字有哪几种语法？override呢？&nbsp;<br/><br/>答案：base两个语法，分别是调用基类构造函数和调用基类方法，override用于重写基类方法。&nbsp;<br/><br/>4、请指出C#中是否有下列关键字？virtual、sealed、abstract、import、as、in、goto、final、Const、signed、&nbsp;<br/><br/>String（提示，仅指出C#中没有的即可）（难度系数50%）。&nbsp;<br/><br/>答案：没有的关键字：import、final、Const、signed、String&nbsp;<br/><br/>5、在循环：for(&nbsp;int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;100;&nbsp;i++&nbsp;)&nbsp;Console.WriteLine(&nbsp;i&nbsp;);中，请指出i++的执行时机。&nbsp;<br/><br/>答案：在Console.WriterLine(&nbsp;i&nbsp;);执行之后&nbsp;<br/><br/>6、试说明continue关键字的用处。&nbsp;<br/><br/>答案：马上开始下一次循环，忽略循环体余下的语句&nbsp;<br/><br/>7、object是C#的关键字吗？请指出C#中有哪些类型关键字，如int、float。（提示，写得越多越好）。&nbsp;<br/><br/>答案：是，object、int、uint、long、ulong、short、ushort、byte、sbyte、char、float、double、decimal、boo&nbsp;<br/><br/>l，如回答：enum、struct、class、delegate也算对。&nbsp;<br/><br/>8、C#的XML文档注释中（以///开头的注释），&lt;summary&gt;标签用于描述什么？&lt;param&gt;标签呢？&nbsp;<br/><br/>答案：&lt;summary&gt;用于某个元素的概要说明，&lt;param&gt;用于某个方法的参数概要说明。&nbsp;<br/><br/>9、我们知道[]是数组和索引器的访问操作符，但它还有一个语法，是什么？&nbsp;<br/><br/>答案：特性（Attribute）&nbsp;<br/><br/>18.请叙述属性与索引器的区别。&nbsp;<br/>属性&nbsp;索引器&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;通过名称标识。&nbsp;通过签名标识。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;通过简单名称或成员访问来访问。&nbsp;通过元素访问来访问。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;可以为静态成员或实例成员。&nbsp;必须为实例成员。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;属性的&nbsp;&nbsp;&nbsp;get&nbsp;&nbsp;&nbsp;访问器没有参数。&nbsp;索引器的&nbsp;&nbsp;&nbsp;get&nbsp;&nbsp;&nbsp;访问器具有与索引器相同的形参表。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;属性的&nbsp;&nbsp;&nbsp;set&nbsp;&nbsp;&nbsp;访问器包含隐式&nbsp;&nbsp;&nbsp;value&nbsp;&nbsp;&nbsp;参数。&nbsp;除了&nbsp;&nbsp;&nbsp;value&nbsp;&nbsp;&nbsp;参数外，索引器的&nbsp;&nbsp;&nbsp;set&nbsp;&nbsp;&nbsp;访问器还具有与索引&nbsp;<br/><br/>器相同的形参表。&nbsp;<br/><br/>1)&nbsp;描述线程与进程的区别？&nbsp;<br/><br/>线程(Thread)与进程（Process）二者都定义了某种边界，不同的是进程定义的是应用程序与应用程序之间的边&nbsp;<br/><br/>界，不同的进程之间不能共享代码和数据空间，而线程定义的是代码执行堆栈和执行上下文的边界。一个进程可&nbsp;<br/><br/>以包括若干个线程，同时创建多个线程来完成某项任务，便是多线程。而同一进程中的不同线程共享代码和数据&nbsp;<br/><br/>空间。用一个比喻来说，如果一个家庭代表一个进程，在家庭内部，各个成员就是线程，家庭中的每个成员都有&nbsp;<br/><br/>义务对家庭的财富进行积累，同时也有权利对家庭财富进行消费，当面对一个任务的时候，家庭也可以派出几个&nbsp;<br/><br/>成员来协同完成，而家庭之外的人则没有办法直接消费不属于自己家庭的财产。&nbsp;<br/><br/>2)&nbsp;什么是Windows服务，它的生命周期与标准的EXE程序有什么不同&nbsp;<br/><br/>Windows服务是运行在windows后台指定用户下（默认System）的应用程序，它没有标准的UI界面，想比标准&nbsp;<br/><br/>的EXE程序，Windows服务是在服务开始的时候创建，而在服务结束的时候销毁，而且可以设置服务是否与操作&nbsp;<br/><br/>系统一起启动，一起关闭。它支持三种方式：１）自动方式&nbsp;2）手动方式&nbsp;３）禁用&nbsp;。自动方式的时&nbsp;<br/><br/>候，windows服务将在OS启动后自动启动运行，而手动方式则必须手工启动服务，禁用的情况下服务将不能被&nbsp;<br/><br/>启动。另外标准的EXE默认使用的当前登录的用户，而windows服务则默认使用System用户，这在对系统资源访&nbsp;<br/><br/>问的时候特别需要注意。&nbsp;<br/><br/>3)&nbsp;&nbsp;Windows单个进程所能访问的最大内存量是多少？它与系统的最大虚拟内存一样吗？这对于系统设计有什么&nbsp;<br/><br/>影响？&nbsp;<br/><br/>这个需要针对硬件平台，公式为单个进程能访问的最大内存量=2的处理器位数次方/2，比如通常情况下，32位&nbsp;<br/><br/>处理器下，单个进程所能访问的最大内存量为:232&nbsp;/2&nbsp;=&nbsp;2G&nbsp;。单个进程能访问的最大内存量是最大虚拟内存&nbsp;<br/><br/>的1/2，因为要分配给操作系统一半虚拟内存。&nbsp;<br/><br/>4)&nbsp;&nbsp;什么是强类型，什么是弱类型？哪种更好些？为什么?&nbsp;<br/><br/>强类型是在编译的时候就确定类型的数据，在执行时类型不能更改，而弱类型在执行的时候才会确定类型。没有&nbsp;<br/><br/>好不好，二者各有好处，强类型安全，因为它事先已经确定好了，而且效率高。一般用于编译型编程语&nbsp;<br/><br/>言，如c++,java,c#,pascal等,弱类型相比而言不安全，在运行的时候容易出现错误，但它灵活，多用于解释型编&nbsp;<br/><br/>程语言，如javascript,vb等&nbsp;<br/><br/>5)&nbsp;&nbsp;PID是什么？在做系统的故障排除时如何使用它？&nbsp;<br/><br/>PID是进程编号，在系统发现故障的时候，可以根据它寻找故障所发生的具体进程，并且可通过visual&nbsp;studio.net&nbsp;<br/><br/>等ide将故障进程附加到进程中进行调试(debug)&nbsp;<br/><br/>6)&nbsp;&nbsp;单个TCP/IP端口上能够被多少个进程侦听？&nbsp;<br/><br/>１个&nbsp;<br/><br/>7)&nbsp;&nbsp;什么是GAC？它解决了什么问题?&nbsp;<br/><br/>Gloal&nbsp;Assembly&nbsp;Cache，全局应用程序集缓存。它解决了几个程序共享某一个程序集的问题。不必再将那个被共&nbsp;<br/><br/>享的程序集拷贝到应用程序目录了，其实这道理很简单，.net应用程序在加载的时候，会首先查看全局应用程序&nbsp;<br/><br/>集缓存，如果有就可以直接使用，没有再到应用程序目录进行查找。&nbsp;<br/><br/>1.白盒测试和黑盒测试&nbsp;<br/>答：黑盒测试：已知产品的功能设计规格，可以进行测试证明每个实现了的功能是否符合要求。&nbsp;<br/><br/>白盒测试：已知产品的内部工作过程，可以通过测试证明每种内部操作是否符合设计规格要求，所有内部成&nbsp;<br/><br/>分是否以经过检查。&nbsp;<br/><br/>软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子，测试人员完全&nbsp;<br/><br/>不考虑程序内部的逻辑结构和内部特性，只依据程序的需求规格说明书，检查程序的功能是否符合它的功能说明&nbsp;<br/><br/>。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误：&nbsp;<br/><br/>1、是否有不正确或遗漏的功能？&nbsp;<br/><br/>2、在接口上，输入是否能正确的接受？能否输出正确的结果？&nbsp;<br/><br/>3、是否有数据结构错误或外部信息（例如数据文件）访问错误？&nbsp;<br/><br/>4、性能上是否能够满足要求？&nbsp;<br/><br/>5、是否有初始化或终止性错误？&nbsp;<br/><br/>软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子，它允许&nbsp;<br/><br/>测试人员利用程序内部的逻辑结构及有关信息，设计或选择测试用例，对程序所有逻辑路径进行测试。通过在不&nbsp;<br/><br/>同点检查程序状态，确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒&nbsp;<br/><br/>测试主要是想对程序模块进行如下检查：&nbsp;<br/><br/>1、对程序模块的所有独立的执行路径至少测试一遍。&nbsp;<br/><br/>2、对所有的逻辑判定，取“真”与取“假”的两种情况都能至少测一遍。&nbsp;<br/><br/>3、在循环的边界和运行的界限内执行循环体。&nbsp;<br/><br/>4、测试内部数据结构的有效性，等等。<br/><br/>请简述一下用Socket进行同步通讯编程的详细步骤&nbsp;<br/>1、在应用程序和远程设备中使用协议和网络地址初始化套接字&nbsp;<br/>2、在应用程序中通过指定端口和地址建立监听&nbsp;<br/>3、远程设备发出连接请求&nbsp;<br/>4、应用程序接受连接产生通信scoket&nbsp;<br/>5、应用程序和远程设备开始通讯（在通讯中应用程序将挂起直到通讯结束）&nbsp;<br/>6、通讯结束，关闭应用程序和远程设备的Socket回收资源<br/><br/>OSI网络结构的七层模型及其核心思想是什么&nbsp;<br/>第七层：应用层&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义了用于在网络中进行通信和数据传输的接口&nbsp;-&nbsp;用户程式；&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;提供标准服务，比如虚拟终端、文件以及任务的传输和处理；&nbsp;<br/>第六层：表示层&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;掩盖不同系统间的数据格式的不同性；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;指定独立结构的数据传输格式；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;数据的编码和解码；加密和解密；压缩和解压缩&nbsp;<br/>第五层：会话层&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;管理用户会话和对话；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;控制用户间逻辑连接的建立和挂断；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;报告上一层发生的错误&nbsp;<br/>第四层：传输层&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;管理网络中端到端的信息传送；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;通过错误纠正和流控制机制提供可靠且有序的数据包传送；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;提供面向无连接的数据包的传送；&nbsp;<br/>第三层：网络层&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;定义网络设备间如何传输数据；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;根据唯一的网络设备地址路由数据包；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;提供流和拥塞控制以防止网络资源的损耗&nbsp;<br/>第二层：数据链路层&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;定义操作通信连接的程序；&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;封装数据包为数据帧；&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;监测和纠正数据包传输错误&nbsp;<br/>第一层：物理层&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;定义通过网络设备发送数据的物理方式；&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;作为网络媒介和设备间的接口；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;定义光学、电气以及机械特性。&nbsp;<br/><br/><br/><br/>2&nbsp;几十上百万行，如何快速查询出表数据&nbsp;<br/>答：用分页存储过程&nbsp;<br/>/*&nbsp;<br/>&nbsp;&nbsp;函数名称:&nbsp;GetRecordFromPage&nbsp;<br/>&nbsp;&nbsp;函数功能:&nbsp;获取指定页的数据&nbsp;<br/>&nbsp;&nbsp;参数说明:&nbsp;@tblName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;包含数据的表名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@fldName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关键字段名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每页记录数&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageIndex&nbsp;&nbsp;&nbsp;&nbsp;要获取的页码&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@OrderType&nbsp;&nbsp;&nbsp;&nbsp;排序类型,&nbsp;0&nbsp;-&nbsp;升序,&nbsp;1&nbsp;-&nbsp;降序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@strWh&#101;re&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询条件&nbsp;(注意:&nbsp;不要加&nbsp;wh&#101;re)&nbsp;<br/>*/&nbsp;<br/>Cr&#101;ate&nbsp;PROCEDURE&nbsp;GetRecordFromPage&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@tblName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(255),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;表名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@fldName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(255),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;字段名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;=&nbsp;10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页尺寸&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@PageIndex&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;=&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页码&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@OrderType&nbsp;&nbsp;&nbsp;&nbsp;bit&nbsp;=&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;设置排序类型,&nbsp;非&nbsp;0&nbsp;值则降序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@strWh&#101;re&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(2000)&nbsp;=&nbsp;&#39;&#39;&nbsp;&nbsp;--&nbsp;查询条件&nbsp;(注意:&nbsp;不要加&nbsp;wh&#101;re)&nbsp;<br/>AS&nbsp;<br/><br/>declare&nbsp;@strSQL&nbsp;&nbsp;&nbsp;varchar(6000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;主语句&nbsp;<br/>declare&nbsp;@strTmp&nbsp;&nbsp;&nbsp;varchar(1000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;临时变量&nbsp;<br/>declare&nbsp;@strOrder&nbsp;varchar(500)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;排序类型&nbsp;<br/><br/>if&nbsp;@OrderType&nbsp;!=&nbsp;0&nbsp;<br/>begin&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&lt;(sel&#101;ct&nbsp;min&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strOrder&nbsp;=&nbsp;&#39;&nbsp;o&#114;der&nbsp;by&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&nbsp;desc&#39;&nbsp;<br/>end&nbsp;<br/>else&nbsp;<br/>begin&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&gt;(sel&#101;ct&nbsp;max&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strOrder&nbsp;=&nbsp;&#39;&nbsp;o&#114;der&nbsp;by&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&#39;]&nbsp;asc&#39;&nbsp;<br/>end&nbsp;<br/><br/>set&nbsp;@strSQL&nbsp;=&nbsp;&#39;sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str(@PageSize)&nbsp;+&nbsp;&#39;&nbsp;*&nbsp;from&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&nbsp;wh&#101;re&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;&#39;([&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;])&nbsp;from&nbsp;(sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&nbsp;+&nbsp;&#39;&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&nbsp;from&nbsp;[&#39;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strOrder&nbsp;+&nbsp;&#39;)&nbsp;as&nbsp;tblTmp)&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@strOrder&nbsp;<br/><br/>if&nbsp;@strWh&#101;re&nbsp;!=&nbsp;&#39;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;&#39;sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str(@PageSize)&nbsp;+&nbsp;&#39;&nbsp;*&nbsp;from&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&nbsp;wh&#101;re&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;&#39;([&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;])&nbsp;from&nbsp;(sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&nbsp;+&nbsp;&#39;&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&nbsp;from&nbsp;[&#39;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&nbsp;wh&#101;re&nbsp;&#39;&nbsp;+&nbsp;@strWh&#101;re&nbsp;+&nbsp;&#39;&nbsp;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@strOrder&nbsp;+&nbsp;&#39;)&nbsp;as&nbsp;tblTmp)&nbsp;and&nbsp;&#39;&nbsp;+&nbsp;@strWh&#101;re&nbsp;+&nbsp;&#39;&nbsp;&#39;&nbsp;+&nbsp;@strOrder&nbsp;<br/><br/>if&nbsp;@PageIndex&nbsp;=&nbsp;1&nbsp;<br/>begin&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;@strWh&#101;re&nbsp;!=&nbsp;&#39;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&nbsp;wh&#101;re&nbsp;(&#39;&nbsp;+&nbsp;@strWh&#101;re&nbsp;+&nbsp;&#39;)&#39;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;&#39;sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str(@PageSize)&nbsp;+&nbsp;&#39;&nbsp;*&nbsp;from&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;&#39;&nbsp;&#39;&nbsp;+&nbsp;@strOrder&nbsp;<br/>end&nbsp;<br/><br/>exec&nbsp;(@strSQL)&nbsp;<br/><br/>GO&nbsp;<br/><br/>三、数据库查询优化：&nbsp;<br/>1、多态性，多种数据库兼容；&nbsp;<br/>2、支持翻页，支持查询总数，页码显示；&nbsp;<br/>3、能处理100万以上数据量；&nbsp;<br/>答：&nbsp;<br/>Cr&#101;ate&nbsp;&nbsp;&nbsp;PROCEDURE&nbsp;&nbsp;&nbsp;dbo.LSP_SP_Sel&#101;ctElementByPage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;@Sel&#101;ctFields&nbsp;&nbsp;&nbsp;varchar(200),/*要查询的字段列表*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;@Condition&nbsp;&nbsp;&nbsp;varchar(300),/*查询条件*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;=20,/*页面大小，默认为20*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;@PageNumber&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;=1/*页号，默认为第一页*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;/*@PageCount&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;out返回满足条件的总页数*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;AS&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;declare&nbsp;&nbsp;&nbsp;@count&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;sel&#101;ct&nbsp;&nbsp;&nbsp;@count&nbsp;&nbsp;&nbsp;=count(*)&nbsp;&nbsp;&nbsp;from&nbsp;&nbsp;&nbsp;lsp_t_elementInfo&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;if(@count&nbsp;&nbsp;&nbsp;%@PageSize=0)&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;set&nbsp;&nbsp;&nbsp;@count&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;@count/@PageSize&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;set&nbsp;&nbsp;&nbsp;@count&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;@count/@PageSize&nbsp;&nbsp;&nbsp;+1&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;sel&#101;ct&nbsp;&nbsp;&nbsp;@count&nbsp;&nbsp;&nbsp;PageCount&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;sel&#101;ct&nbsp;&nbsp;&nbsp;IDENTITY(int,1,1)&nbsp;&nbsp;&nbsp;as&nbsp;&nbsp;&nbsp;iid,ElementName,Type&nbsp;&nbsp;&nbsp;into&nbsp;&nbsp;&nbsp;#temptable&nbsp;&nbsp;&nbsp;from&nbsp;&nbsp;&nbsp;LSP_T_ElementInfo&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;from&nbsp;&nbsp;&nbsp;#temptable&nbsp;&nbsp;&nbsp;wh&#101;re&nbsp;&nbsp;&nbsp;iid&nbsp;&nbsp;&nbsp;between&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;(@PageNumber&nbsp;&nbsp;&nbsp;-1)&nbsp;&nbsp;&nbsp;and&nbsp;&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;@PageNumber&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;GO&nbsp;<br/><br/>1.两个表，写查询语句，根据两个字段一个是升序，一个将序。&nbsp;<br/>答：sel&#101;ct&nbsp;*&nbsp;from&nbsp;a,b&nbsp;wh&#101;re&nbsp;a.字段1&nbsp;＝&nbsp;b.字段1&nbsp;o&#114;der&nbsp;by&nbsp;a.字段2&nbsp;asc,b.字段2&nbsp;desc&nbsp;<br/>2.根据第一题，每页面显示10条记录，在第25页时怎样显示&nbsp;<br/>答：&nbsp;<br/>/*&nbsp;<br/>&nbsp;&nbsp;函数名称:&nbsp;GetRecordFromPage&nbsp;<br/>&nbsp;&nbsp;函数功能:&nbsp;获取指定页的数据&nbsp;<br/>&nbsp;&nbsp;参数说明:&nbsp;@tblName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;包含数据的表名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@fldName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关键字段名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每页记录数&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@PageIndex&nbsp;&nbsp;&nbsp;&nbsp;要获取的页码&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@OrderType&nbsp;&nbsp;&nbsp;&nbsp;排序类型,&nbsp;0&nbsp;-&nbsp;升序,&nbsp;1&nbsp;-&nbsp;降序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@strWh&#101;re&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询条件&nbsp;(注意:&nbsp;不要加&nbsp;wh&#101;re)&nbsp;<br/>*/&nbsp;<br/>Cr&#101;ate&nbsp;PROCEDURE&nbsp;GetRecordFromPage&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@tblName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(255),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;表名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@fldName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(255),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;字段名&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@PageSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;=&nbsp;10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页尺寸&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@PageIndex&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;=&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;页码&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@OrderType&nbsp;&nbsp;&nbsp;&nbsp;bit&nbsp;=&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;设置排序类型,&nbsp;非&nbsp;0&nbsp;值则降序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;@strWh&#101;re&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varchar(2000)&nbsp;=&nbsp;&#39;&#39;&nbsp;&nbsp;--&nbsp;查询条件&nbsp;(注意:&nbsp;不要加&nbsp;wh&#101;re)&nbsp;<br/>AS&nbsp;<br/><br/>declare&nbsp;@strSQL&nbsp;&nbsp;&nbsp;varchar(6000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;主语句&nbsp;<br/>declare&nbsp;@strTmp&nbsp;&nbsp;&nbsp;varchar(1000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;临时变量&nbsp;<br/>declare&nbsp;@strOrder&nbsp;varchar(500)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&nbsp;排序类型&nbsp;<br/><br/>if&nbsp;@OrderType&nbsp;!=&nbsp;0&nbsp;<br/>begin&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&lt;(sel&#101;ct&nbsp;min&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strOrder&nbsp;=&nbsp;&#39;&nbsp;o&#114;der&nbsp;by&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&nbsp;desc&#39;&nbsp;<br/>end&nbsp;<br/>else&nbsp;<br/>begin&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&gt;(sel&#101;ct&nbsp;max&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strOrder&nbsp;=&nbsp;&#39;&nbsp;o&#114;der&nbsp;by&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&#39;]&nbsp;asc&#39;&nbsp;<br/>end&nbsp;<br/><br/>set&nbsp;@strSQL&nbsp;=&nbsp;&#39;sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str(@PageSize)&nbsp;+&nbsp;&#39;&nbsp;*&nbsp;from&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&nbsp;wh&#101;re&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;&#39;([&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;])&nbsp;from&nbsp;(sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&nbsp;+&nbsp;&#39;&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&nbsp;from&nbsp;[&#39;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strOrder&nbsp;+&nbsp;&#39;)&nbsp;as&nbsp;tblTmp)&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@strOrder&nbsp;<br/><br/>if&nbsp;@strWh&#101;re&nbsp;!=&nbsp;&#39;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;&#39;sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str(@PageSize)&nbsp;+&nbsp;&#39;&nbsp;*&nbsp;from&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&nbsp;wh&#101;re&nbsp;[&#39;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;&#39;([&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;])&nbsp;from&nbsp;(sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str((@PageIndex-1)*@PageSize)&nbsp;+&nbsp;&#39;&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@fldName&nbsp;+&nbsp;&#39;]&nbsp;from&nbsp;[&#39;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&nbsp;wh&#101;re&nbsp;&#39;&nbsp;+&nbsp;@strWh&#101;re&nbsp;+&nbsp;&#39;&nbsp;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@strOrder&nbsp;+&nbsp;&#39;)&nbsp;as&nbsp;tblTmp)&nbsp;and&nbsp;&#39;&nbsp;+&nbsp;@strWh&#101;re&nbsp;+&nbsp;&#39;&nbsp;&#39;&nbsp;+&nbsp;@strOrder&nbsp;<br/><br/>if&nbsp;@PageIndex&nbsp;=&nbsp;1&nbsp;<br/>begin&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;@strWh&#101;re&nbsp;!=&nbsp;&#39;&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strTmp&nbsp;=&nbsp;&#39;&nbsp;wh&#101;re&nbsp;(&#39;&nbsp;+&nbsp;@strWh&#101;re&nbsp;+&nbsp;&#39;)&#39;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;@strSQL&nbsp;=&nbsp;&#39;sel&#101;ct&nbsp;top&nbsp;&#39;&nbsp;+&nbsp;str(@PageSize)&nbsp;+&nbsp;&#39;&nbsp;*&nbsp;from&nbsp;[&#39;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;@tblName&nbsp;+&nbsp;&#39;]&#39;&nbsp;+&nbsp;@strTmp&nbsp;+&nbsp;&#39;&nbsp;&#39;&nbsp;+&nbsp;@strOrder&nbsp;<br/>end&nbsp;<br/><br/>exec&nbsp;(@strSQL)&nbsp;<br/><br/>GO&nbsp;<br/><br/>2.写出一条Sql语句：&nbsp;取出表A中第31到第40记录（SQLServer,&nbsp;以自动增长的ID作为主键,&nbsp;&nbsp;注意：ID可能不是连续的。）&nbsp;<br/>sel&#101;ct&nbsp;top&nbsp;10&nbsp;*&nbsp;from&nbsp;A&nbsp;wh&#101;re&nbsp;id&nbsp;not&nbsp;in&nbsp;(sel&#101;ct&nbsp;top&nbsp;30&nbsp;id&nbsp;from&nbsp;A)&nbsp;<br/>解2:&nbsp;sel&#101;ct&nbsp;top&nbsp;10&nbsp;*&nbsp;from&nbsp;A&nbsp;wh&#101;re&nbsp;id&nbsp;&gt;&nbsp;(sel&#101;ct&nbsp;max(id)&nbsp;from&nbsp;(sel&#101;ct&nbsp;top&nbsp;30&nbsp;id&nbsp;from&nbsp;A&nbsp;)as&nbsp;A)&nbsp;<br/><br/>3.public&nbsp;class&nbsp;c{&nbsp;public&nbsp;c(string&nbsp;a)&nbsp;:&nbsp;this()&nbsp;{;};&nbsp;public&nbsp;c()&nbsp;{;}&nbsp;}&nbsp;解释第一个构造函数中发生了什么？这个构造函数有什么用?&nbsp;<br/>（第一个构造函数调用了第二个构造函数，这个构造函数构造了一个c对象的实例。）&nbsp;<br/><br/>4.一个长度为10000的字符串，通过随机从a-z中抽取10000个字符组成。请用c＃语言编写主要程序来实现。&nbsp;<br/>答：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;System.Text;&nbsp;<br/>StringBuilder&nbsp;sb&nbsp;=&nbsp;new&nbsp;StringBuilder(0,&nbsp;10000);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;strABC&nbsp;=&nbsp;&#34;a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z&#34;;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[]&nbsp;ABC&nbsp;=&nbsp;strABC.Split(&#39;,&#39;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;len&nbsp;=&nbsp;ABC.Length;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Random&nbsp;rd&nbsp;=&nbsp;new&nbsp;Random();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;10000;&nbsp;i++)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(ABC[rd.Next(len)]);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>5.产生一个int数组，长度为100，并向其中随机插入1-100，并且不能重复。&nbsp;<br/>int[]&nbsp;intArr=new&nbsp;int[100];&nbsp;<br/>ArrayList&nbsp;myList=new&nbsp;ArrayList();&nbsp;<br/>Random&nbsp;rnd=new&nbsp;Random();&nbsp;<br/>while(myList.Count&lt;100)&nbsp;<br/>{&nbsp;<br/>int&nbsp;num=rnd.Next(1,101);&nbsp;<br/>if(!myList.Contains(num))&nbsp;<br/>myList.Add(num);&nbsp;<br/>}&nbsp;<br/>for(int&nbsp;i=0;i&lt;100;i++)&nbsp;<br/>intArr[i]=(int)myList[i];<br/><br/>2.如何把一个Array复制到ArrayList里&nbsp;<br/>答：&nbsp;<br/>foreach(&nbsp;object&nbsp;o&nbsp;in&nbsp;array&nbsp;)arrayList.Add(o);&nbsp;<br/><br/>8.用C#写一段选择排序算法，要求用自己的编程风格。&nbsp;<br/>答：private&nbsp;int&nbsp;min;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;xuanZhe(int[]&nbsp;list)//选择排序&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;list.Length&nbsp;-&nbsp;1;&nbsp;i++)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;=&nbsp;i;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;j&nbsp;=&nbsp;i&nbsp;+&nbsp;1;&nbsp;j&nbsp;&lt;&nbsp;list.Length;&nbsp;j++)&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;if&nbsp;(list[j]&nbsp;&lt;&nbsp;list[min])&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;=&nbsp;j;&nbsp;<br/><br/>&nbsp;&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;int&nbsp;t&nbsp;=&nbsp;list[min];&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[min]&nbsp;=&nbsp;list[i];&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[i]&nbsp;=&nbsp;t;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>4.写一个函数计算当参数为N的值:1-2+3-4+5-6+7……+N&nbsp;<br/>答：public&nbsp;int&nbsp;returnSum(int&nbsp;n)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum&nbsp;=&nbsp;0;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;n;&nbsp;i++)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k&nbsp;=&nbsp;i;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&nbsp;%&nbsp;2&nbsp;==&nbsp;0)&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;k&nbsp;=&nbsp;-k;&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;sum&nbsp;=&nbsp;sum&nbsp;+&nbsp;k;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sum;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;returnSum1(int&nbsp;n)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k&nbsp;=&nbsp;n;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n&nbsp;==&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n&nbsp;%&nbsp;2&nbsp;==&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;=&nbsp;-k;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;aaa(n&nbsp;-&nbsp;1)&nbsp;+&nbsp;k;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/><br/>7.&nbsp;某一密码仅使用K、L、M、N、O共5个字母，密码中的单词从左向右排列，密码单词必须遵循如下规则&nbsp;：&nbsp;<br/>（1）&nbsp;密码单词的最小长度是两个字母，可以相同，也可以不同&nbsp;<br/>（2）&nbsp;K不可能是单词的第一个字母&nbsp;<br/>（3）&nbsp;如果L出现，则出现次数不止一次&nbsp;<br/>（4）&nbsp;M不能使最后一个也不能是倒数第二个字母&nbsp;<br/>（5）&nbsp;K出现，则N就一定出现&nbsp;<br/>（6）&nbsp;O如果是最后一个字母，则L一定出现&nbsp;<br/>问题一：下列哪一个字母可以放在LO中的O后面，形成一个3个字母的密码单词？&nbsp;<br/>A)&nbsp;K&nbsp;B)L&nbsp;C)&nbsp;M&nbsp;D)&nbsp;N&nbsp;<br/>答案:B&nbsp;<br/>问题二：如果能得到的字母是K、L、M，那么能够形成的两个字母长的密码单词的总数是多少？&nbsp;<br/>A)1个&nbsp;B)3个&nbsp;C)6个&nbsp;D）9个&nbsp;<br/>答案:A&nbsp;<br/>问题三：下列哪一个是单词密码？&nbsp;<br/>A)&nbsp;KLLN&nbsp;B)&nbsp;LOML&nbsp;C)&nbsp;MLLO&nbsp;D)NMKO&nbsp;<br/>答案:C&nbsp;<br/><br/>62-63=1&nbsp;等式不成立，请移动一个数字（不可以移动减号和等于号），使得等式成立，如何移动？&nbsp;<br/>答案:62移动成2的6次方<br/><br/>17、列出常用的使用javascript操作xml的类包&nbsp;<br/>答：&nbsp;<br/>XML.prototype.xmlDoc&nbsp;=&nbsp;new&nbsp;ActiveXObject(&#34;Microsoft.XMLDOM&#34;);&nbsp;<br/>XML.prototype.InitXML=InitXML;&nbsp;<br/>XML.prototype.getFirstChild=getFirstChild;&nbsp;<br/>XML.prototype.getLastChild=getLastChild;&nbsp;<br/>XML.prototype.getChild=getChild;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;取得节点值&nbsp;<br/>XML.prototype.getNodeslength=getNodeslength;&nbsp;&nbsp;&nbsp;//&nbsp;最得节点下的子节点的个数&nbsp;<br/>XML.prototype.getNode=getNode;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;取得指定节点&nbsp;<br/>XML.prototype.delNode=delNode;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;删除指定节点,如果节点相同,则删除最前面的节点.&nbsp;<br/>XML.prototype.getNodeAttrib=getNodeAttrib;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;取得节点的指定属性值.&nbsp;<br/>XML.prototype.Ins&#101;rtBeforeChild=Ins&#101;rtBeforeChild;&nbsp;&nbsp;//&nbsp;在指定节点之前插入一个节点.&nbsp;<br/>XML.prototype.Ins&#101;rtChild=Ins&#101;rtChild;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;在指定节点下插入节点.&nbsp;<br/>XML.prototype.setAttrib=setAttrib;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;设置指定属性的值.&nbsp;<br/>XML.prototype.setNodeValue=setNodeValue;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;设置指定节点的值.&nbsp;<br/>XML.prototype.Cr&#101;ateNodeS=Cr&#101;ateNodeS;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;创建一个指定名的节点．&nbsp;<br/>XML.prototype.addAttrib=addAttrib;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;为指定节点添加指定属性，并设置初值.&nbsp;<br/>XML.prototype.FindString=FindString;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;在指定节点下查找字符串.&nbsp;<br/><br/>给定以下XML文件，完成算法流程图&lt;FileSystem&gt;&nbsp;<br/>&lt;&nbsp;DriverC&nbsp;&gt;&nbsp;<br/>&lt;Dir&nbsp;DirName=”MSDOS622”&gt;&nbsp;<br/>&lt;File&nbsp;FileName&nbsp;=”&nbsp;Command.com”&nbsp;&gt;&lt;/File&gt;&nbsp;<br/>&lt;/Dir&gt;&nbsp;<br/>&lt;File&nbsp;FileName&nbsp;=”MSDOS.SYS”&nbsp;&gt;&lt;/File&gt;&nbsp;<br/>&lt;File&nbsp;FileName&nbsp;=”&nbsp;IO.SYS”&nbsp;&gt;&lt;/File&gt;&nbsp;<br/>&lt;/DriverC&gt;&nbsp;<br/>&lt;/FileSystem&gt;&nbsp;<br/>请画出遍历所有文件名（FileName）的流程图(请使用递归算法)。&nbsp;<br/>答：&nbsp;<br/>void&nbsp;FindFile(&nbsp;Directory&nbsp;d&nbsp;)&nbsp;<br/>{&nbsp;<br/>FileOrFolders&nbsp;=&nbsp;d.GetFileOrFolders();&nbsp;<br/>foreach(&nbsp;FileOrFolder&nbsp;fof&nbsp;in&nbsp;FileOrFolders&nbsp;)&nbsp;<br/>{&nbsp;<br/>if(&nbsp;fof&nbsp;is&nbsp;File&nbsp;)&nbsp;<br/>You&nbsp;Found&nbsp;a&nbsp;file;&nbsp;<br/>else&nbsp;if&nbsp;(&nbsp;fof&nbsp;is&nbsp;Directory&nbsp;)&nbsp;<br/>FindFile(&nbsp;fof&nbsp;);&nbsp;<br/>}&nbsp;<br/>}<br/><br/>6.C#代码实现，确保windows程序只有一个实例（instance）&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&lt;summary&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///应用程序的主入口点。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&lt;/summary&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[STAThread]&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;staticvoid&nbsp;Main()&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&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;if(!OneInstance.IsFirst(&#34;GetPayInfo&#34;))&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;MessageBox.Show&nbsp;(&#34;警告:程序正在运行中!&nbsp;请不要重复打开程序!可在右下角系统栏找到!&#34;,&#34;程序错误提&nbsp;<br/><br/>示:&#34;,MessageBoxButtons.OK,MessageBoxIcon.Stop);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&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;Application.Run(new&nbsp;Form1());&nbsp;<br/>&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;publicabstractclass&nbsp;OneInstance&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&lt;summary&gt;&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;///&lt;/summary&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&lt;param&nbsp;name=&#34;appId&#34;&gt;程序名称&lt;/param&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&lt;returns&gt;如果程序是第一次运行返回True,否则返回False&lt;/returns&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;publicstaticbool&nbsp;IsFirst(string&nbsp;appId)&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;bool&nbsp;ret=false;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cr&#101;ateMutex(IntPtr.Zero,0,appId);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret=true;&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;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;&nbsp;<br/>&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;[DllImport(&#34;Kernel32.dll&#34;,CharSet=CharSet.Auto)]&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;privatestaticextern&nbsp;IntPtr&nbsp;OpenMutex(&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint&nbsp;dwDesiredAccess,&nbsp;//&nbsp;access&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;bInheritHandle,&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;inheritance&nbsp;option&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;lpName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;object&nbsp;name&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;[DllImport(&#34;Kernel32.dll&#34;,CharSet=CharSet.Auto)]&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;privatestaticextern&nbsp;IntPtr&nbsp;Cr&#101;ateMutex(&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntPtr&nbsp;lpMutexAttributes,&nbsp;//&nbsp;SD&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;bInitialOwner,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;initial&nbsp;owner&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;lpName&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;//&nbsp;object&nbsp;name&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;<br/><br/>作者：曾祥展<br/>出处：<a href="http://zengxiangzhan.cnblogs.com/" target="_blank">http://zengxiangzhan.cnblogs.com/</a><br/>本文版权归作者和博客园共有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=430</link>
			<title><![CDATA[【转】VS2010 正式版 破解方法详解（仅供技术交流）]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Fri,16 Apr 2010 10:44:14 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=430</guid>	
		<description><![CDATA[全球开发者最为瞩目的Visual&nbsp;Studio&nbsp;2010开发工具在4月12日正式发布，现为大家制作一个简单的破解教程有两种方法，操作不一样，原都一样(针对旗舰版，其他版本方法一样)：<br/><br/><br/>教程一：<br/><br/>步骤1.下载VS2010&nbsp;正式版，下载地址：<br/><br/>页面：<br/><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en" target="_blank">http://www.microsoft.com/downloads/details.aspx?displaylang=en</a>&amp;FamilyID=06a32b1c-80e9-41df-ba0c-79d56cb823f7<br/>直接ISO文件地址：<br/><a href="http://download.microsoft.com/download/2/4/7/24733615-AA11-42E9-8883-E28CDCA88ED5/X16-42552VS2010UltimTrial1.iso" target="_blank">http://download.microsoft.com/download/2/4/7/24733615-AA11-42E9-8883-E28CDCA88ED5/X16-42552VS2010UltimTrial1.iso</a><br/><br/>步骤2.安装文件完成后，点击此处（如下图2.1和2.2）：<br/><img src="http://www.fenglog.com/attachments/month_1004/k2010416104227.gif" border="0" alt=""/><br/><br/><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;(图2.1)<br/><br/><br/>在卸载向导中输入序列号（如图2.2）：<br/><br/>YCFHQ-9DWCY-DKV88-T2TMH-G7BHP&nbsp;VS2010&nbsp;SN<br/><br/>&nbsp;<img src="http://www.fenglog.com/attachments/month_1004/z2010416104257.gif" border="0" alt=""/><br/><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(图2.2)<br/><br/>步骤3.破解成功（图3.1）：<br/><br/><img src="http://www.fenglog.com/attachments/month_1004/a2010416104311.gif" border="0" alt=""/><br/><br/><br/>教程二：<br/><br/>步骤1.同教程一下步骤1，下载源文件。<br/><br/>步骤2.解压到源文件，并找到setup文件夹如下图所示：<br/><br/><img src="http://www.fenglog.com/attachments/month_1004/y2010416104320.gif" border="0" alt=""/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>步骤3：打开setup文件夹并找到setup.sdb文件，如下图所示：<br/><br/><br/>&nbsp;&nbsp;&nbsp;<img src="http://www.fenglog.com/attachments/month_1004/u2010416104332.gif" border="0" alt=""/><br/><br/><br/>步骤4.以记事本打开setup.sdb文件,并找到：<br/><br/>[Product&nbsp;Key]<br/>YR3W8FCM2B7BKF9HMQFTCH7WK<br/><br/>并将key替换成：<br/><br/>YCFHQ9DWCYDKV88T2TMHG7BHP<br/><br/>如下图：<br/><br/><img src="http://www.fenglog.com/attachments/month_1004/4201041610452.gif" border="0" alt=""/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/><br/>步骤5.破解完成，关闭所有文件，点击setup.exe按常规步骤安装即可。<br/><br/><br/>免责声明：此文仅供技术交流，任何由此产生的法律问题概不负责，谢谢。<br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=428</link>
			<title><![CDATA[给SQL &#34;FOR XML AUTO&#34; 加上根节点]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Thu,01 Apr 2010 16:04:17 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=428</guid>	
		<description><![CDATA[sel&#101;ct&nbsp;top&nbsp;1&nbsp;<br/>1&nbsp;as&nbsp;Tag,&nbsp;<br/>NULL&nbsp;as&nbsp;Parent,&nbsp;<br/>NULL&nbsp;as&nbsp;[ROOT!1],&nbsp;<br/>CategoryID&nbsp;as&nbsp;[categories!2!CategoryID],&nbsp;<br/>CategoryName&nbsp;as&nbsp;[categories!2!CategoryName]&nbsp;<br/>FROM&nbsp;categories&nbsp;<br/>UNION&nbsp;ALL&nbsp;<br/>sel&#101;ct&nbsp;<br/>2,&nbsp;<br/>1,&nbsp;<br/>NULL,&nbsp;<br/>CategoryID,&nbsp;<br/>CategoryName&nbsp;<br/>From&nbsp;Categories&nbsp;<br/>FOR&nbsp;XML&nbsp;EXPLICIT&nbsp;<br/><br/>输出结果：&nbsp;<br/>&lt;ROOT&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;1&#34;&nbsp;CategoryName=&#34;Beverages&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;2&#34;&nbsp;CategoryName=&#34;Condiments&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;3&#34;&nbsp;CategoryName=&#34;Confections&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;4&#34;&nbsp;CategoryName=&#34;Dairy&nbsp;Products&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;5&#34;&nbsp;CategoryName=&#34;Grains/Cereals&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;6&#34;&nbsp;CategoryName=&#34;Meat/Poultry&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;7&#34;&nbsp;CategoryName=&#34;Produce&#34;/&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;categories&nbsp;CategoryID=&#34;8&#34;&nbsp;CategoryName=&#34;Seafood&#34;/&gt;&nbsp;<br/>&lt;/ROOT&gt;&nbsp;<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=427</link>
			<title><![CDATA[写了一天的超级无敌变态的Sql语句]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[心情小窗]]></category>
			<pubDate>Thu,01 Apr 2010 10:42:21 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=427</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.fenglog.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/><br/>Sel&#101;ct&nbsp;BusinessStatisticsT.BizStatisticsID,BusinessStatisticsT.BusinessID,BusinessStatisticsT.BidderInfo&nbsp;from&nbsp;BusinessStatisticsT<br/>inner&nbsp;join<br/>(&nbsp;<br/>--排除重复的<br/>Sel&#101;ct&nbsp;BizStatisticsID,BusinessStatisticsT.BusinessID&nbsp;from&nbsp;BusinessStatisticsT<br/>inner&nbsp;join&nbsp;<br/>(sel&#101;ct&nbsp;T1.OrderID,BusinessID&nbsp;from<br/>(Sel&#101;ct&nbsp;BusinessID<br/>,BizStatisticsID<br/>,BidderInfo<br/>,nref.value(&#39;@OrderID&#39;,&#39;int&#39;)&nbsp;as&nbsp;o&#114;derID<br/>,nref.value(&#39;(/BidderInfo/Orders/SrmUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;SrmUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/BidderUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;BidderUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/WaitDistributeResCount)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;WaitDistributeResCount<br/>FROM&nbsp;BusinessStatisticsT&nbsp;CROSS&nbsp;APPLY&nbsp;BidderInfo.nodes(&#39;BidderInfo/Orders&#39;)&nbsp;AS&nbsp;R(nref))&nbsp;as&nbsp;T1<br/>group&nbsp;by&nbsp;o&#114;derID,BusinessID&nbsp;having&nbsp;count(OrderID)&gt;1)&nbsp;as&nbsp;T2<br/>on&nbsp;T2.BusinessID=BusinessStatisticsT.BusinessID<br/><br/>UNION&nbsp;<br/><br/>--排除多的<br/>Sel&#101;ct&nbsp;&nbsp;BusinessStatisticsT.BizStatisticsID,BusinessStatisticsT.BusinessID&nbsp;from&nbsp;BusinessStatisticsT<br/>inner&nbsp;join<br/>(sel&#101;ct&nbsp;distinct&nbsp;T3.BusinessID&nbsp;from<br/>(Sel&#101;ct&nbsp;BusinessID<br/>,BizStatisticsID<br/>,BidderInfo<br/>,nref.value(&#39;@OrderID&#39;,&#39;int&#39;)&nbsp;as&nbsp;o&#114;derID<br/>,nref.value(&#39;(/BidderInfo/Orders/SrmUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;SrmUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/BidderUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;BidderUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/WaitDistributeResCount)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;WaitDistributeResCount<br/>FROM&nbsp;BusinessStatisticsT&nbsp;A&nbsp;CROSS&nbsp;APPLY&nbsp;BidderInfo.nodes(&#39;BidderInfo/Orders&#39;)&nbsp;AS&nbsp;R(nref)&nbsp;)&nbsp;as&nbsp;T3&nbsp;<br/>wh&#101;re&nbsp;not&nbsp;exists(sel&#101;ct&nbsp;o&#114;dersT.OrderID&nbsp;from&nbsp;o&#114;dersT&nbsp;&nbsp;wh&#101;re&nbsp;UserID&gt;0&nbsp;and&nbsp;T3.OrderID=OrdersT.OrderID)&nbsp;)&nbsp;as&nbsp;T4<br/>on&nbsp;T4.BusinessID=BusinessStatisticsT.BusinessID<br/>&nbsp;<br/>--排除少的<br/>UNION&nbsp;<br/><br/>Sel&#101;ct&nbsp;&nbsp;BusinessStatisticsT.BizStatisticsID,BusinessStatisticsT.BusinessID&nbsp;&nbsp;from&nbsp;BusinessStatisticsT<br/>inner&nbsp;join<br/>(sel&#101;ct&nbsp;o&#114;dersT.BusinessID&nbsp;from&nbsp;o&#114;dersT<br/>left&nbsp;join<br/>(Sel&#101;ct&nbsp;BusinessID<br/>,BizStatisticsID<br/>,BidderInfo<br/>,nref.value(&#39;@OrderID&#39;,&#39;int&#39;)&nbsp;as&nbsp;o&#114;derID<br/>,nref.value(&#39;(/BidderInfo/Orders/SrmUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;SrmUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/BidderUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;BidderUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/WaitDistributeResCount)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;WaitDistributeResCount<br/>FROM&nbsp;BusinessStatisticsT&nbsp;A&nbsp;CROSS&nbsp;APPLY&nbsp;BidderInfo.nodes(&#39;BidderInfo/Orders&#39;)&nbsp;AS&nbsp;R(nref)&nbsp;)&nbsp;as&nbsp;T5<br/>On&nbsp;o&#114;dersT.OrderID=T5.OrderID<br/>wh&#101;re&nbsp;UserID&gt;0&nbsp;and&nbsp;T5.OrderID&nbsp;is&nbsp;null)&nbsp;as&nbsp;T6<br/>on&nbsp;T6.BusinessID=BusinessStatisticsT.BusinessID<br/><br/>UNION<br/><br/>--BidderUserID或者SrmUserID对不上的<br/>Sel&#101;ct&nbsp;&nbsp;BusinessStatisticsT.BizStatisticsID,BusinessStatisticsT.BusinessID&nbsp;&nbsp;from&nbsp;BusinessStatisticsT<br/>inner&nbsp;join<br/>(Sel&#101;ct&nbsp;distinct&nbsp;T7.BusinessID&nbsp;from&nbsp;o&#114;dersT<br/>left&nbsp;join&nbsp;<br/>(Sel&#101;ct&nbsp;BusinessID<br/>,BizStatisticsID<br/>,BidderInfo<br/>,nref.value(&#39;@OrderID&#39;,&#39;int&#39;)&nbsp;as&nbsp;o&#114;derID<br/>,nref.value(&#39;(/BidderInfo/Orders/SrmUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;SrmUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/BidderUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;BidderUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/WaitDistributeResCount)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;WaitDistributeResCount<br/>FROM&nbsp;BusinessStatisticsT&nbsp;A&nbsp;CROSS&nbsp;APPLY&nbsp;BidderInfo.nodes(&#39;BidderInfo/Orders&#39;)&nbsp;AS&nbsp;R(nref)&nbsp;)&nbsp;as&nbsp;T7<br/>On&nbsp;T7.OrderID=OrdersT.OrderID<br/>wh&#101;re&nbsp;T7.SrmUserID!=OrdersT.KeyAccountsID&nbsp;o&#114;&nbsp;o&#114;dersT.UserID!=BidderUserID&nbsp;)&nbsp;as&nbsp;T8<br/>On&nbsp;T8.BusinessID=BusinessStatisticsT.BusinessID<br/><br/>UNION<br/><br/>--WaitDistributeResCount对不上的<br/><br/>Sel&#101;ct&nbsp;&nbsp;BusinessStatisticsT.BizStatisticsID,BusinessStatisticsT.BusinessID&nbsp;&nbsp;from&nbsp;BusinessStatisticsT<br/>inner&nbsp;join<br/>(sel&#101;ct&nbsp;distinct&nbsp;T11.BusinessID&nbsp;from&nbsp;<br/>(Sel&#101;ct&nbsp;BusinessID<br/>,BizStatisticsID<br/>,BidderInfo<br/>,nref.value(&#39;@OrderID&#39;,&#39;int&#39;)&nbsp;as&nbsp;o&#114;derID<br/>,nref.value(&#39;(/BidderInfo/Orders/SrmUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;SrmUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/BidderUserID)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;BidderUserID<br/>,nref.value(&#39;(/BidderInfo/Orders/WaitDistributeResCount)[1]&#39;,&#39;int&#39;)&nbsp;as&nbsp;WaitDistributeResCount<br/>FROM&nbsp;BusinessStatisticsT&nbsp;A&nbsp;CROSS&nbsp;APPLY&nbsp;BidderInfo.nodes(&#39;BidderInfo/Orders&#39;)&nbsp;AS&nbsp;R(nref)&nbsp;)&nbsp;as&nbsp;T11<br/>inner&nbsp;join&nbsp;<br/>(Sel&#101;ct&nbsp;Count(ResourcesID)&nbsp;as&nbsp;ResCount,OrderID&nbsp;From&nbsp;<br/>(<br/>sel&#101;ct&nbsp;ResourcesT.ResourcesID,ResourcesT.OrderID&nbsp;from&nbsp;ResourcesT<br/>inner&nbsp;join&nbsp;o&#114;dersT<br/>On&nbsp;ResourcesT.OrderID=OrdersT.OrderID&nbsp;and&nbsp;MilestoneID=0&nbsp;and&nbsp;o&#114;derStatus=30<br/>)&nbsp;as&nbsp;T9&nbsp;group&nbsp;by&nbsp;o&#114;derID)&nbsp;as&nbsp;T10<br/>on&nbsp;T10.OrderID=T11.OrderID<br/>wh&#101;re&nbsp;T11.WaitDistributeResCount!=T10.ResCount)&nbsp;as&nbsp;T12<br/>on&nbsp;T12.BusinessID=BusinessStatisticsT.BusinessID<br/><br/>)&nbsp;as&nbsp;T<br/>on&nbsp;T.BizStatisticsID=BusinessStatisticsT.BizStatisticsID<br/><br/></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=426</link>
			<title><![CDATA[超级无敌强大的Sql操作Xml字段]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Tue,30 Mar 2010 16:11:16 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=426</guid>	
		<description><![CDATA[&nbsp;&nbsp;表BusinessStatisticsT结构见图：<br/><img src="http://www.fenglog.com/attachments/month_1003/o20103301685.jpg" border="0" alt=""/><br/><br/>xml字段的结构：<br/><br/>&lt;BidderInfo&gt;<br/>&nbsp;&nbsp;&lt;Orders&nbsp;o&#114;derID=&#34;1&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;SrmUserID&gt;srm的ID&lt;/SrmUserID&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;SrmUserName&gt;Srm的用户名称&lt;/SrmUserName&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;SrmRealName&gt;Srm的真实名称&lt;/SrmRealName&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;BidderUserID&gt;接包方用户ID&lt;/BidderUserID&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;BidderName&gt;接包方用户名称&lt;/BidderName&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;BidderUserName&gt;接包方真实姓名&lt;/BidderUserName&gt;<br/>&#160;&#160;&#160;&#160;&lt;WaitDistributeResCount&gt;待分配里程碑资源数&lt;/WaitDistributeResCount&gt;<br/>&nbsp;&nbsp;&lt;/Orders&gt;<br/>&nbsp;&nbsp;&lt;Orders&nbsp;o&#114;derID=&#34;2&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;SrmUserID&gt;&lt;/SrmUserID&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;SrmUserName&gt;&lt;/SrmUserName&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;BidderUserID&gt;&lt;/BidderUserID&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;BidderName&gt;&lt;/BidderName&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;BidderUserName&gt;&lt;/BidderUserName&gt;<br/>&#160;&#160;&#160;&#160;&lt;WaitDistributeResCount&gt;&lt;/WaitDistributeResCount&gt;<br/>&nbsp;&nbsp;&lt;/Orders&gt;<br/>&lt;/BidderInfo&gt;<br/><br/>期望得到的结果：<br/>每个BusinessStatisticsT中的每个记录的Orders节点作为一个查询结果，即：<br/><br/><img src="http://www.fenglog.com/attachments/month_1003/u2010330161026.jpg" border="0" alt=""/><br/><br/>搞了一个下午，最后得到的语句应该是这么写的：<br/><br/>DECLARE&nbsp;@hdoc&nbsp;int<br/>DECLARE&nbsp;@xmlDoc&nbsp;xml<br/>set&nbsp;@xmlDoc=(<br/>sel&#101;ct&nbsp;*&nbsp;from<br/>(sel&#101;ct&nbsp;top&nbsp;1&nbsp;<br/>1&nbsp;as&nbsp;Tag,&nbsp;<br/>NULL&nbsp;as&nbsp;Parent,&nbsp;<br/>NULL&nbsp;as&nbsp;[ROOT!1],&nbsp;<br/>BizStatisticsID&nbsp;as&nbsp;[BusinessStatisticsT!2!BizStatisticsID],&nbsp;<br/>BusinessID&nbsp;as&nbsp;[BusinessStatisticsT!2!BusinessID],<br/>BidderInfo&nbsp;as&nbsp;[BusinessStatisticsT!2!BidderInfo]&nbsp;<br/>FROM&nbsp;BusinessStatisticsT&nbsp;<br/>UNION&nbsp;ALL&nbsp;<br/>sel&#101;ct&nbsp;<br/>2,&nbsp;<br/>1,&nbsp;<br/>NULL,&nbsp;<br/>BizStatisticsID,&nbsp;<br/>BusinessID,<br/>BidderInfo<br/>From&nbsp;BusinessStatisticsT)&nbsp;&nbsp;as&nbsp;Txml<br/>FOR&nbsp;XML&nbsp;EXPLICIT&nbsp;<br/>)<br/>sel&#101;ct&nbsp;@xmlDoc<br/><br/>EXEC&nbsp;sp_xml_preparedocument&nbsp;@hdoc&nbsp;OUTPUT,&nbsp;@xmlDoc<br/><br/>sel&#101;ct&nbsp;*&nbsp;from&nbsp;Openxml(@hdoc,&#39;/ROOT/BusinessStatisticsT/BidderInfo/BidderInfo/Orders&#39;,2)&nbsp;with<br/>(<br/>&#160;&#160;&#160;&#160;BizStatisticsID&nbsp;int&nbsp;&#39;../../../@BizStatisticsID&#39;,<br/>&#160;&#160;&#160;&#160;BusinessID&nbsp;int&nbsp;&#39;../../../@BusinessID&#39;,<br/>&#160;&#160;&#160;&#160;o&#114;derID&nbsp;int&nbsp;&#39;@OrderID&#39;,<br/>&#160;&#160;&#160;&#160;SrmUserID&nbsp;int&nbsp;&#39;SrmUserID&#39;,<br/>&#160;&#160;&#160;&#160;BidderUserID&nbsp;int&nbsp;&#39;BidderUserID&#39;,<br/>&#160;&#160;&#160;&#160;WaitDistributeResCount&nbsp;int&nbsp;&#39;WaitDistributeResCount&#39;<br/>)<br/><br/><br/>=================<br/>不要问我为什么，我也不知道怎么出来的<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.fenglog.com/default.asp?id=425</link>
			<title><![CDATA[字符串截取[区分中英文，中文算两个长度]]]></title>
			<author>lucklier@163.com(随风)</author>
			<category><![CDATA[技术楼阁]]></category>
			<pubDate>Mon,29 Mar 2010 14:51:02 +0800</pubDate>
			<guid>http://www.fenglog.com/default.asp?id=425</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.fenglog.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&nbsp;&nbsp;#region&nbsp;截取允许的最大的字符串子串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;说明：截取允许的最大的字符串子串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;作者：janksen<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;历史：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2009-12-14：创建<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2009-12-29：改变截取长度的方式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2010-03-29：修正中英文状态下截取字符串长度的偏差问题<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;str&#34;&gt;要截取的字符串&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;len&#34;&gt;保留的长度&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;string&nbsp;MaxLengthSubString(string&nbsp;str,&nbsp;int&nbsp;len)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;temp&nbsp;=&nbsp;str;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(GetStringLength(str)&nbsp;&lt;=&nbsp;len)<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;return&nbsp;str;<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;else<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;//先大胆截断一截<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(str.Length&nbsp;&gt;&nbsp;len)<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;temp&nbsp;=&nbsp;str.Substring(0,&nbsp;len);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;while(GetStringLength(temp)&nbsp;&gt;&nbsp;len&nbsp;&amp;&amp;&nbsp;temp.Length&nbsp;&gt;&nbsp;0)<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;temp&nbsp;=&nbsp;temp.Substring(0,&nbsp;temp.Length&nbsp;-&nbsp;1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;temp;<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;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#region&nbsp;截取允许的最大的字符串子串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;说明：截取允许的最大的字符串子串<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;作者：janksen<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;历史：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2009-12-14：创建<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2009-12-29：改变截取方式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2010-03-29：修改如果有后缀字符串的算法<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;str&#34;&gt;要截取的字符串&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;len&#34;&gt;保留的长度&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;postStr&#34;&gt;如果超过允许的长度，字符串添加的后缀&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;string&nbsp;MaxLengthSubString(string&nbsp;str,&nbsp;int&nbsp;len,&nbsp;string&nbsp;postStr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;subStr&nbsp;=&nbsp;MaxLengthSubString(str,&nbsp;len);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;subStrLen=GetStringLength(subStr);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;postStrLen=GetStringLength(postStr);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(subStr.Length&nbsp;==&nbsp;str.Length)<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;return&nbsp;str;<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;else<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;if(subStrLen&nbsp;&gt;postStrLen)<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;return&nbsp;MaxLengthSubString(subStr,&nbsp;len-postStrLen)+postStr;<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;else<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;return&nbsp;subStr;<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;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#region&nbsp;获取字符串长度<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;说明：获取字符串长度<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;作者：janksen<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;历史：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2009-12-29：创建<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;str&#34;&gt;&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;int&nbsp;GetStringLength(string&nbsp;str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Regex.Replace(str,&nbsp;&#34;[\u4e00-\u9fa5]&#34;,&nbsp;&#34;zz&#34;,&nbsp;RegexOptions.IgnoreCase).Length;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br/></div></div>]]></description>
		</item>
		
</channel>
</rss>