<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>蜗牛博客</title>
	<atom:link href="http://goku.spitv.net/feed" rel="self" type="application/rss+xml" />
	<link>http://goku.spitv.net</link>
	<description>IT World Weblog</description>
	<pubDate>Thu, 14 Aug 2008 15:43:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>维生素D：抗病新斗士</title>
		<link>http://goku.spitv.net/archives/102</link>
		<comments>http://goku.spitv.net/archives/102#comments</comments>
		<pubDate>Thu, 14 Aug 2008 15:42:42 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[资讯]]></category>

		<category><![CDATA[av]]></category>

		<category><![CDATA[生活]]></category>

		<category><![CDATA[维生素]]></category>

		<category><![CDATA[DOS]]></category>

		<category><![CDATA[英文翻译]]></category>

		<category><![CDATA[IDE]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[IM]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[IP]]></category>

		<category><![CDATA[Office]]></category>

		<category><![CDATA[ORM]]></category>

		<category><![CDATA[Search]]></category>

		<category><![CDATA[test]]></category>

		<category><![CDATA[vb]]></category>

		<category><![CDATA[xp]]></category>

		<category><![CDATA[健康]]></category>

		<category><![CDATA[医药]]></category>

		<category><![CDATA[医学]]></category>

		<category><![CDATA[测试]]></category>

		<category><![CDATA[保健]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=102</guid>
		<description><![CDATA[太阳光作为维生素D的一个来源不但完全免费，而且非常充裕，至少对地球上多数地区来说是这样。各种补充添加剂也差不多同样价廉物美。不过，有越来越多的专家认为，许多人体内的维生素D... ]]></description>
			<content:encoded><![CDATA[<p>太阳光作为维生素D的一个来源不但完全免费，而且非常充裕，至少对地球上多数地区来说是这样。各种补充添加剂也差不多同样价廉物美。不过，有越来越多的专家认为，许多人体内的维生素D含量不足，特别是那些整天在室内工作娱乐、层层涂抹防晒剂的人更是如此。而且，专家们对维生素D的了解越多，摄取不足的危害似乎也越让人担心。<br />
人们早就知道维生素D对强健骨骼至关重要。但最新研究发现，它还能帮助人体抵御多种疾病的袭扰。Archives of Internal Medicine上个月的一项研究发现，维生素D摄取不足的男性罹患心脏病的风险更高，其他研究还揭示出，维生素D不足与乳腺癌、卵巢癌、前列腺癌、胃癌、膀胱癌、食道癌、肾癌和肺癌有关。此外高血压、中风、糖尿病、牙周疾病、风湿性关节炎、多发性硬化症、黄斑部病变、精神疾病以及慢性疼痛的发生也与人体内维生素D水平过低脱不开干系。<br />
非营利组织维生素D协会(Vitamin D Council)创始人约翰•康奈尔(John J. Cannell)说，这听起来彷佛一派胡言，但如果你了解到维生素D会转化成一种参与维持人体200多种基因的类固醇激素，也许你就不会这么惊讶了。</p>
<p><span id="more-102"></span></p>
<p>目前为止，维生素D最有效的来源是阳光中的紫外线B(UVB)，它能将人体皮肤中的一种胆固醇转化成维生素D。如果一个人在纽约户外穿着泳衣晒20分钟日光浴，那么他体内合成的维生素D比喝200杯牛奶吸收的维生素D还要多。不过，UVB强度会随地理纬度、云层覆盖情况、季节和一天具体时间的不同而发生明显变化。在每年11月至次年2月之间，北纬42度（即从加州北部边界至波士顿连线）以北地区的阳光就不足以帮助人们合成足量的维生素D。研究人员对纬度和发病率进行研究后发现了一些颇能引人深思的规律。比如，古巴等国的1型糖尿病患者就比新西兰和瑞典等国少得多。<br />
皮肤黝黑者和老年人借助日光合成维生素D的能力弱于年轻人和肤色较浅的人。而且UVB不能穿透防晒系数在8以上的玻璃或遮阳镜。<br />
人们很难从饮食里摄取大量维生素D。直接含有维生素D的食物很少，只有鲑鱼、鲭鱼、金枪鱼等高脂肪鱼类，以及动物的肝脏和蛋黄。从上世纪30年代开始，美国就在大部分牛奶中添加维生素D，以预防软骨病。<br />
人们普遍接受的一个观点是，大多数人都需要补充一定量的维生素D，问题是，该补充多少？美国1997年颁布的指导意见是，从出生到50岁每天应补充200国际单位(IU)，51-70岁补充400IU，71岁以上补充600IU。但许多专家以及美国医药协会(American Medical Association)都在敦促政府参照最新研究结果对该标准进行修订，Institute of Medicine正在讨论如何着手。<br />
而一些组织已不愿再坐等。美国儿科学会(American Academy of Pediatrics)表示，母乳喂养的婴儿每天需补充400IU的维生素D。全美骨质疏松症基金会(National Osteoporosis Foundation)则建议50岁以上的成年人每天至少补充800-1,000IU以防发生骨折。还有一点，维生素D3比D2的效果更好。<br />
你可以通过测血来了解体内的维生素D水平，检测过程大约需100美元。应测量25-羟基维生素D指标，而不是1,25-二羟基维生素D。如果每毫升血液中前者的含量达不到20毫微克就属于偏低水平。含量在30毫微克/毫升以上时就能产生抗癌能力。华盛顿内科医生艾伦•波辛基(Alan Pocinki)一直在对他的病人进行测试，他们大多是从事室内工作的白领。波辛基发现，大约半数病人的25-羟基维生素D含量低于20毫微克/毫升。<br />
借助日光合成维生素D辈淮嬖诠康奈侍猓蛭绻迥诤恳呀细撸潞铣傻奈谼量会相应减少。对口服补充维生素D的人，Institute of Medicine的建议是不要超过每天2,000IU。但有些专家认为这个上限太低。维生素D可能产生的毒副反应包括肾结石和心律不齐，但非常罕见。<br />
以上这些有关维生素D的讨论是否已经让你头昏脑胀了？美国癌症协会(American Cancer Society)药物副总监兰恩•利奇费尔德(Len Lichtenfeld)说，许多人被各种相互矛盾的信息给搞糊涂了。该协会建议人们通过服用药物补充维生素D，而不是靠晒太阳。利奇费尔德说，我们需要对维生素D对健康的好处以及适宜水平等问题有更多的了解；美国人在人种、地区分布和敏感度方面区别很大，不可能拿出一个一刀切的推荐意见。<br />
Melinda Beck<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Sunlight, as a source of vitamin D, is free and abundant, at least in most of the world. Supplements are almost as cheap. Yet a growing number of experts think that many people aren&#8217;t getting enough vitamin D &#8212; particularly those who work and play indoors and slather on sunscreen. And the more experts learn about what D does, the more worrisome a deficiency seems.<br />
It&#8217;s long been known that D is crucial for strong bones. But new research suggests that it also protects against a wide variety of diseases. A study in the Archives of Internal Medicine last month found that men with low D had a higher risk for heart attacks. Other studies have linked low D with cancer of the breast, ovary, prostate, stomach, bladder, esophagus, kidney and lung. Low levels of D also have been associated with high blood pressure, stroke, diabetes, periodontal disease, rheumatoid arthritis, multiple sclerosis, macular degeneration, mental illness and chronic pain.<br />
&#8216;It sounds crazy &#8212; until you realize that vitamin D turns into a steroid hormone that&#8217;s involved in the maintenance of over 200 human genes,&#8217; says John J. Cannell, founder of the nonprofit Vitamin D Council in Atascadero, Calif.<br />
The strongest source, by far, is ultraviolet B rays from the sun, which convert a form of cholesterol into vitamin D in the skin. A person sitting outside in a bathing suit in New York City gets more vitamin D in 20 minutes than from drinking 200 glasses of milk. But UVB rays vary greatly depending on latitude, cloud cover, time of year and time of day. Above 42 degrees north latitude (a line from the northern California border to Boston), the sun&#8217;s rays don&#8217;t provide sufficient D from November through February. Researchers looking at latitude and disease rates have found some intriguing patterns. Type 1 diabetes, for example, is much rarer in countries like Cuba than in either New Zealand and Sweden.<br />
Dark-skinned and elderly people don&#8217;t process vitamin D from the sun as efficiently as younger, fair-skinned people. UVB rays also don&#8217;t penetrate glass or sunscreen with a factor of 8 or more.<br />
It&#8217;s difficult to get much D through diet. Few foods contain it naturally &#8212; mainly fatty fish like salmon, mackerel and tuna, as well as liver and egg yolks. Since the 1930s, most milk in the U.S. has been fortified with D to prevent rickets, a bone-softening disease.<br />
It&#8217;s widely accepted that most people need some supplemental D &#8212; the question is, how much? Current U.S. guidelines, issued in 1997, call for 200 international units from birth through age 50; 400 IUs from 51 through age 70 and 600 IUs from 71 on. But many experts and the American Medical Association are urging the government to revisit those numbers in light of the latest research, and the Institute of Medicine is in discussions to do so.<br />
Some groups aren&#8217;t waiting. The American Academy of Pediatrics says breast-fed infants should get 400 IUs of supplemental D daily. The National Osteoporosis Foundation urges adults over age 50 to get at least 800 to 1,000 IUs to prevent fractures. Look for D3, which is more potent than D2.<br />
You can learn your vitamin D level with a blood test, which costs about $100. It should measure 25-hydroxyvitamin D, not 1,25-dihydroxyvitamin D. A concentration of less than 20 nanograms per milliliter is considered deficient. Many cancer-prevention benefits have been seen at levels of 30 ng/ml or more. Alan Pocinki, an internist in Washington, D.C., has been testing his patients &#8212; mostly white-collar workers with indoor jobs &#8212; and found about half are below 20 ng/ml.<br />
It&#8217;s not possible to overdose on vitamin D from the sun; it degrades in the skin at high levels. For supplements, the Institute of Medicine set an upper limit of 2,000 IUs per day, but some experts think that&#8217;s too low. Vitamin D toxicity can involve kidney stones and heart arrhythmias, but cases are very rare.<br />
Does all this D-iscussion leave you D-izzy? &#8216;Many people are confused by the conflicting messages,&#8217; says Len Lichtenfeld, deputy chief medical officer for the American Cancer Society, which suggests getting D from supplements, not the sun. &#8216;We need to know more about what the health benefits are, and what the right level is. We&#8217;re a country of different ethnicities and locations and sensitivities. We probably can&#8217;t make a one-size-fits-all recommendation.&#8217;</p>
<p> </p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=102&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_102" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/102/feed</wfw:commentRss>
		</item>
		<item>
		<title>安装中文VS2008 SP1 和.NETFRAMEWORK 3.5SP1后智能提示变成英文的解决办法</title>
		<link>http://goku.spitv.net/archives/101</link>
		<comments>http://goku.spitv.net/archives/101#comments</comments>
		<pubDate>Thu, 14 Aug 2008 15:26:31 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[未分类]]></category>

		<category><![CDATA[2008]]></category>

		<category><![CDATA[英文]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Sp1]]></category>

		<category><![CDATA[visual studio]]></category>

		<category><![CDATA[Visual Studio.net]]></category>

		<category><![CDATA[windows]]></category>

		<category><![CDATA[冲突]]></category>

		<category><![CDATA[下载]]></category>

		<category><![CDATA[中文]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=101</guid>
		<description><![CDATA[期待已久的VS2008 SP1 和.NET FRAMEWORK 3.5 SP1都出来了
下载地址
Microsoft Visual Studio 2008 Service Pack 1 (iso)
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&#38;FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61
Visual Stud... ]]></description>
			<content:encoded><![CDATA[<p>期待已久的VS2008 SP1 和.NET FRAMEWORK 3.5 SP1都出来了</p>
<p>下载地址</p>
<p>Microsoft Visual Studio 2008 Service Pack 1 (iso)</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61</a></p>
<p>Visual Studio 2008 Team Foundation Server Service Pack 1(iso)</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=9e40a5b6-da41-43a2-a06d-3cee196bfe3d">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=9e40a5b6-da41-43a2-a06d-3cee196bfe3d</a></p>
<p>Microsoft .NET Framework 3.5 Service Pack 1</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7">http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7</a></p>
<p>      第一时间安装完后，智能提示却是英文的，呵呵这对于我这个英文不好的人来说，有点郁闷，重新装了好几次.NETFROAMWORK 3.5 SP1语言包都解决不了问题，后来就用备份的资源文件替换掉ZH-CN目录。问题解决掉了呵呵，下载地址</p>
<p>点击下载(2.0)，</p>
<p>完了解压后，替换掉</p>
<p>C:\Windows\Microsoft.NET\Framework\v2.0.50727\zh-CN 目录，</p>
<p>点击下载(3.0)，</p>
<p>完了解压后，替换掉</p>
<p>C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\zh-CN目录</p>
<p>点击下载(3.5)，</p>
<p>完了解压后，替换掉</p>
<p>C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\zh-CN目录</p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=101&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_101" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/101/feed</wfw:commentRss>
		</item>
		<item>
		<title>升级到VS.net 2008 sp1与卡巴斯基冲突</title>
		<link>http://goku.spitv.net/archives/100</link>
		<comments>http://goku.spitv.net/archives/100#comments</comments>
		<pubDate>Thu, 14 Aug 2008 15:24:59 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[2008]]></category>

		<category><![CDATA[2009]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Sp1]]></category>

		<category><![CDATA[sp3]]></category>

		<category><![CDATA[thread]]></category>

		<category><![CDATA[vb]]></category>

		<category><![CDATA[Vista]]></category>

		<category><![CDATA[Visual Studio.net]]></category>

		<category><![CDATA[windows]]></category>

		<category><![CDATA[xp]]></category>

		<category><![CDATA[卡巴斯基]]></category>

		<category><![CDATA[安全]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=100</guid>
		<description><![CDATA[Vs.net 2008 sp1出来了，我等迫不及待的马上升级，我刚刚在xp和vista下都进行了安装。我是先在Vista下升级的，升级过程较慢，还算顺利。
之后到xp sp3下升级，升级出错，报
C:\Program Files\Microsoft SDK... ]]></description>
			<content:encoded><![CDATA[<p>Vs.net 2008 sp1出来了，我等迫不及待的马上升级，我刚刚在xp和vista下都进行了安装。我是先在Vista下升级的，升级过程较慢，还算顺利。</p>
<p>之后到xp sp3下升级，升级出错，报</p>
<p>C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Engine\setup.bin</p>
<p>位置有木马程序。我没有在意，确实升级到卡巴斯基2009后安全性提高了，初次运行一个程序卡巴都会进行扫描，无危险后加入低限制组，我把卡巴斯基关掉，再次安装，成功。</p>
<p>可是今天正好有一个程序要发布，我直接用vs.net做的安装程序，生成时附带了程序所需要的运行环境，生成后，发现原本应该有的setup.exe(安装时附加运行环境的可执行文件)和setup.msi(安装包)居然少了一个，setup.exe没了，这时卡巴报警，提示已检测 木马程序 Backdoor.Win32.VB.ffx H:\Setup\setup.exe有木马，再生成，眼睁睁的看见刚刚生成了setup.exe被删除。无奈，上msdn发现刚刚升级到vs.net 2008 sp1的朋友似乎都有这个问题，安装vs.net 2008失败也有可能是这个问题造成的。</p>
<p>原帖见</p>
<p><a href="http://forums.msdn.microsoft.com/en-US/vssetup/thread/c1abc118-223e-415f-9440-1e845f29363b/">http://forums.msdn.microsoft.com/en-US/vssetup/thread/c1abc118-223e-415f-9440-1e845f29363b/</a></p>
<p>Microsoft现在还没有给出答复，刚刚致电卡巴斯基，居然没人接，该问题继续寻求解决中。</p>
<p>先放首页吧，也给兄弟们提个醒，dudu要觉得不合适就拿下来，谢谢。</p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=100&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_100" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/100/feed</wfw:commentRss>
		</item>
		<item>
		<title>2008北京奥运开幕式各国版本下载</title>
		<link>http://goku.spitv.net/archives/99</link>
		<comments>http://goku.spitv.net/archives/99#comments</comments>
		<pubDate>Tue, 12 Aug 2008 13:25:26 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[视频]]></category>

		<category><![CDATA[.Net]]></category>

		<category><![CDATA[av]]></category>

		<category><![CDATA[cctv]]></category>

		<category><![CDATA[版本]]></category>

		<category><![CDATA[电驴]]></category>

		<category><![CDATA[速度]]></category>

		<category><![CDATA[财经]]></category>

		<category><![CDATA[迅雷]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[Olympic]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[thread]]></category>

		<category><![CDATA[vb]]></category>

		<category><![CDATA[原创]]></category>

		<category><![CDATA[在线]]></category>

		<category><![CDATA[奥运]]></category>

		<category><![CDATA[开幕式]]></category>

		<category><![CDATA[更新]]></category>

		<category><![CDATA[下载]]></category>

		<category><![CDATA[中国]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=99</guid>
		<description><![CDATA[给你一个不一样的开幕式,很多效果超过CCTV开幕式 Olympic
　　奥运会开幕式上的火炬点燃仪式，起源于1936年柏林奥林匹克运动会。
　　开幕式（Opening Ceremony）历来都是奥运会的重头戏。在开幕... ]]></description>
			<content:encoded><![CDATA[<p>给你一个不一样的开幕式,很多效果超过CCTV开幕式 Olympic</p>
<p>　　奥运会开幕式上的火炬点燃仪式，起源于1936年柏林奥林匹克运动会。</p>
<p>　　开幕式（Opening Ceremony）历来都是奥运会的重头戏。在开幕式上既要反映出以和平、团结、友谊为宗旨的奥林匹克精神，也要展现出东道国的民族文化、地方风俗和组织工作的水平，同时还要表达对世界各国来宾的热情欢迎。开幕式上，除了进行一系列基本的仪式外，一般都有精彩的富有民族特色的团体操和文艺或军事体育表演。</p>
<p>　　奥运会开幕式各种版本用户可以通过（电驴/迅雷/普通)下载<br />
下载地址：</p>
<p>　　片段版在最下面下载</p>
<p>　　开幕式前一小时的，不过是英语的，质量不好</p>
<p>　　Beijing 2008 Olympics Opening Ceremony First Hour MP4</p>
<p>　　328.57M(English )</p>
<p>　　<a href="http://www.mininova.org/get/1676005">http://www.mininova.org/get/1676005</a></p>
<p>　　这个是英语的，火炬和焰火，720p，很清晰</p>
<p>　　Beijing Olympics&#8217;08 Torch&amp;Fireworks BBC-HDTV 720p x264</p>
<p>　　320.45M(English )</p>
<p>　　<a href="http://www.mininova.org/get/1677580">http://www.mininova.org/get/1677580</a></p>
<p>　　高清格式的</p>
<p>　　2008 Beijing Olympics Opening Ceremony Full (HDTV)</p>
<p>　　3.26G(Chinese)</p>
<p>　　<a href="http://www.mininova.org/get/1676625">http://www.mininova.org/get/1676625</a></p>
<p>　　这个是NBC电视台的，720p，英语的</p>
<p>　　Beijing Olympics 2008 Opening Ceremony 720p HDTV x264</p>
<p>　　4.92G(English )</p>
<p>　　<a href="http://www.mininova.org/tor/1679166">http://www.mininova.org/tor/1679166</a></p>
<p>　　还有一个法语i的，1080i的，下载之前考虑一下网速<br />
　　Opening ceremony Beijing 2008 - HD1080i - French TV</p>
<p>　　9.29G(French)</p>
<p>　　<a href="http://www.mininova.org/get/1678364">http://www.mininova.org/get/1678364</a></p>
<p>　　还有一个RMVB格式的</p>
<p>　　2008年第29届奥运会开幕式[1920×1080][RMVB] 1.32G(Chinese)</p>
<p>　　<a href="http://bbs.ioohoo.com/attachment.php?aid=103369">http://bbs.ioohoo.com/attachment.php?aid=103369</a></p>
<p>　　TVB版 <a href="http://bbs.100kan.com/thread-493825-1-1.html">http://bbs.100kan.com/thread-493825-1-1.html</a></p>
<p>　　====================</p>
<p>　　在次更新一个神奇NBC版的地址（速度超快但是好象没人下完过，我刚刚去试一下速度很奇怪 ）ed2k://|file|Beijing_Olympics_Opening_Ceremony_The_Show.avi|1096942896|C3F0814C0DE921ACBDD615A48A619B7C|/</p>
<p>　　===============================================</p>
<p>　　在线NBC版，国外地址可能卡</p>
<p>　　PART 1 <a href="http://www.lakersmedia.com/?p=211">http://www.lakersmedia.com/?p=211</a></p>
<p>　　PART 2 <a href="http://www.lakersmedia.com/?p=212">http://www.lakersmedia.com/?p=212</a></p>
<p>　　PART 3 <a href="http://www.lakersmedia.com/?p=213">http://www.lakersmedia.com/?p=213</a></p>
<p>　　PART 4 <a href="http://www.lakersmedia.com/?p=214">http://www.lakersmedia.com/?p=214</a></p>
<p>　　PART 5 <a href="http://www.lakersmedia.com/?p=215">http://www.lakersmedia.com/?p=215</a></p>
<p>　　PART 6 <a href="http://www.lakersmedia.com/?p=216">http://www.lakersmedia.com/?p=216</a></p>
<p>（和讯财经原创）<br />
　　更新了美国NBC 4.92 gigabyte</p>
<p>　　Beijing Olympics 2008 Opening Ceremony 720p HDTV x264-ORENJi</p>
<p>　　<a href="http://www.mininova.org/tor/1679166">http://www.mininova.org/tor/1679166</a>这个链接还要解压缩。 （最原始文件）</p>
<p>　　英国BBC 2.54 gigabyte</p>
<p>　　The Olympic Games 2008 Opening Ceremony (8th August 2008)[WS PDTV(Xvid)] Tiggzz xtremespeeds.net</p>
<p>　　<a href="http://www.mininova.org/tor/1676926">http://www.mininova.org/tor/1676926</a></p>
<p>　　韩国MBC 4.37 gigabyte</p>
<p>　　MBC Beijing Olympic 2008 The Opening Ceremony HDTV 720p 5 1ch x264-Aye mkv<br />
　　<a href="http://www.mininova.org/tor/1678213">http://www.mininova.org/tor/1678213</a></p>
<p>　　TVB高清版本的下载地址（里面的东西我就不知道了，我没勇气点开他） .42.3G <a href="http://hkgupload.com/612D3C.torrent">http://hkgupload.com/612D3C.torrent</a></p>
<p>　　15G版本应该是高清频道（我猜的）<a href="http://203.171.230.202/bqseedfro">http://203.171.230.202/bqseedfro</a> &#8230; 6FF6C63A30FA9A226AC</p>
<p>　　NBC版奥运会开幕式-片段版（电驴下载）<br />
　　1、倒计时部分ed2k://fileolympics-opening1-NBC &#8230; B631EF62699B2194A7/</p>
<p>　　2、击缶表演ed2k://fileolympics-opening2-NBC &#8230; B11F86A739A1766BD3/</p>
<p>　　3、烟火大脚印，飞天和五环升起部分ed2k://fileolympics-opening3-NBC &#8230; CF5E187A3643793136/</p>
<p>　　4、孔子门生及活字表演部分ed2k://fileolympics-opening4-NBC &#8230; E4CDAFE344357979A0/</p>
<p>　　5、朗朗钢琴表演及绿灯人的表演部分ed2k://fileolympics-opening5-NBC &#8230; F71D3D17685645DAD8/</p>
<p>　　6、太极部分ed2k://fileolympics-opening6-NBC &#8230; 56C5CB03304D977687/</p>
<p>　　NBC版奥运会开幕式-片段版（迅雷/普通下载） （跟电驴版的内容是一样的，格式不同而已）<br />
　　1.http://s2.filegu.ru/get/1mh5yv90 &#8230; s-opening1-divx.avi</p>
<p>　　2.http://s2.filegu.ru/get/2ZCwFP97 &#8230; s-opening2-divx.avi</p>
<p>　　3.http://s2.filegu.ru/get/VbEtabV0 &#8230; s-opening3-divx.avi</p>
<p>　　4.http://s2.filegu.ru/get/FfPCWGiB &#8230; s-opening4-divx.avi</p>
<p>　　5.http://s2.filegu.ru/get/PltEhLF0 &#8230; s-opening5-divx.avi</p>
<p>　　6.http://s2.filegu.ru/get/T3bOlBJa &#8230; s-opening6-divx.avi</p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=99&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_99" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/99/feed</wfw:commentRss>
		</item>
		<item>
		<title>安装新版XP Sp3补丁后,迅雷无法修改连接数的解决办法</title>
		<link>http://goku.spitv.net/archives/98</link>
		<comments>http://goku.spitv.net/archives/98#comments</comments>
		<pubDate>Fri, 18 Jul 2008 11:42:01 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[资讯]]></category>

		<category><![CDATA[版本]]></category>

		<category><![CDATA[破解]]></category>

		<category><![CDATA[线程]]></category>

		<category><![CDATA[缓存]]></category>

		<category><![CDATA[速度]]></category>

		<category><![CDATA[软件]]></category>

		<category><![CDATA[迅雷]]></category>

		<category><![CDATA[连接数]]></category>

		<category><![CDATA[sp2]]></category>

		<category><![CDATA[sp3]]></category>

		<category><![CDATA[windows xp]]></category>

		<category><![CDATA[xp]]></category>

		<category><![CDATA[安全]]></category>

		<category><![CDATA[更新]]></category>

		<category><![CDATA[杀毒软件]]></category>

		<category><![CDATA[下载]]></category>

		<category><![CDATA[修改]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=98</guid>
		<description><![CDATA[一个是删除 KB951748 补丁(添加/删除程序可以删除),另一个是安装新版迅雷,已经支持修改

产品名称： 迅雷5
版 本 号： 5.8.3.545
软件大小： 8.38MB
发布日期： 2008.07.14

更新信息

修改XP下半开连接... ]]></description>
			<content:encoded><![CDATA[<p>一个是删除 KB951748 补丁(添加/删除程序可以删除),另一个是安装新版迅雷,已经支持修改</p>
<h3>
<li>产品名称： 迅雷5</li>
<li>版 本 号： 5.8.3.545</li>
<li>软件大小： 8.38MB</li>
<li>发布日期： 2008.07.14</li>
</h3>
<h3>更新信息</h3>
<ul>
<li>修改XP下半开连接数不能修改的问题</li>
</ul>
<p class="akst_link"><a href="http://goku.spitv.net/?p=98&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_98" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/98/feed</wfw:commentRss>
		</item>
		<item>
		<title>Kaspersky 2009 (8.0.0.429) 汉化美化版</title>
		<link>http://goku.spitv.net/archives/97</link>
		<comments>http://goku.spitv.net/archives/97#comments</comments>
		<pubDate>Sun, 06 Jul 2008 06:53:29 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[精品软件]]></category>

		<category><![CDATA[2007]]></category>

		<category><![CDATA[2009]]></category>

		<category><![CDATA[av]]></category>

		<category><![CDATA[版本]]></category>

		<category><![CDATA[美化]]></category>

		<category><![CDATA[软件]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[Kaspersky]]></category>

		<category><![CDATA[vb]]></category>

		<category><![CDATA[Vista]]></category>

		<category><![CDATA[windows]]></category>

		<category><![CDATA[xp]]></category>

		<category><![CDATA[安全]]></category>

		<category><![CDATA[文字]]></category>

		<category><![CDATA[更新]]></category>

		<category><![CDATA[杀毒软件]]></category>

		<category><![CDATA[汉化]]></category>

		<category><![CDATA[测试]]></category>

		<category><![CDATA[下载]]></category>

		<category><![CDATA[中文]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=97</guid>
		<description><![CDATA[汉化包下载地址：http://www.hanzify.org/?Go=Show::List&#38;ID=11817
原版下载地址：Kaspersky 2009 (8.0.0.429) 家用系列通用简体中文包包含Kaspersky Lab的Kaspersky 2009 (8.0.0.429) 家用系列安全软件产品的汉化.可以汉... ]]></description>
			<content:encoded><![CDATA[<p>汉化包下载地址：http://www.hanzify.org/?Go=Show::List&amp;ID=11817</p>
<p>原版下载地址：<span style="font-family: Tahoma;">Kaspersky 2009 (8.0.0.429) 家用系列通用简体中文包包含Kaspersky Lab的Kaspersky 2009 (8.0.0.429) 家用系列安全软件产品的汉化.可以汉化:<br />
Kaspersky Internet Security 2009 (8.0.0.429):<br />
<a href="http://downloads1.kaspersky-labs.com/devbuilds/8.0.0.429%20Nct/KIS/English/2008_07_03_18_36/kis.en.msi">http://downloads1.kaspersky-labs.com/devbuilds/8.0.0.429%20Nct/KIS/English/2008_07_03_18_36/kis.en.msi</a><br />
Kaspersky Anti-Virus 2009 (8.0.0.429):<br />
<a href="http://downloads1.kaspersky-labs.com/devbuilds/8.0.0.429%20Nct/KAV/English/2008_07_03_18_36/kav.en.msi">http://downloads1.kaspersky-labs.com/devbuilds/8.0.0.429%20Nct/KAV/English/2008_07_03_18_36/kav.en.msi</a></span></p>
<p><span style="font-family: Tahoma;">8.0.0.429是Kaspersky 2009 (8.0)家用系列的最新测试版本.<br />
8.0.0.357是Kaspersky 2009 (8.0)家用系列的最新正式版本.<br />
7.0.1.325是Kaspersky 7.0家用系列的最新正式版本.<br />
6.0.3.837是Kaspersky 6.0商用系列的最新正式版本.<br />
6.0.2.621是Kaspersky 6.0家用系列的最新正式版本.</span></p>
<p><span id="more-97"></span><span style="font-family: Tahoma;"><br />
</span><span style="font-family: Tahoma;"><br />
</span><span style="font-family: Tahoma;">Kaspersky Lab的2009 (8.0)全系列安全软件是全球领先的信息安全产品的最新一代创新技术结晶,创造性地将全方位的安全防护划分为反恶意软件,联机安全,系统安全和内容筛选 四大组件.反恶意软件组件提供面向文件和内存,电子邮件和即时讯息以及网络通信的反恶意软件保护;联机安全组件具有反伪冒,侵入防护系统以及反拨号器功 能;系统安全组件集合应用程序筛选,防火墙以及主动防护特性;内容筛选配备反垃圾邮件,横幅广告阻止器以及家长控制模块.四大组件,既独挡一面又四位一 体,能够提供最完整最全面的的电脑保护解决方案.同时Kaspersky业已成为在中国知名度最高,美誉度最高,市场占有率最高的国际安全软件品 牌,Kaspersky Lab的2009 (8.0)全系列安全软件绝对是您的放心之选,称心之选.</p>
<p></span><span style="font-family: Tahoma;"><strong>安装指南:</strong><br />
在安装本汉化前请务必先按照以下步骤操作:<br />
1.右键点击系统右下角托盘区域中的程序图标选择Settings.<br />
2.在弹出的设置对话框中点击左侧树形目录中间的Options,取消选择右侧Self-defense区域下面的Enable Self-Defense前的复选框.<br />
3.点击OK关闭对话框.<br />
4.右键点击系统右下角托盘区域中的程序图标选择Exit.</p>
<p></span><span style="font-family: Tahoma;"><strong>汉化历史:<br />
</strong>2008.07.05  Kaspersky 2009 (8.0.0.429) 家用系列通用简体中文包<br />
改进一处翻译<br />
2008.06.28  Kaspersky 2009 (8.0.0.422) 家用系列通用简体中文包<br />
</span><span style="font-family: Tahoma;">2008.06.27  Kaspersky 2009 (8.0.0.357) 正式版家用系列通用简体中文包<br />
<strong>全新2009/8.0系列汉化,全面改进汉化用词及中英文夹杂时的处理方式<br />
针对XP和Vista进行不同的界面字体优化,使XP或Vista下中文的显示效果都更完美<br />
增加对是否已安装原版软件的检测<br />
安装汉化后自动重新启用自我防护</strong></span></p>
<p><span style="font-family: Tahoma;">2008.03.21  Kaspersky 7.0.1.325 MP1 CF1 正式版家用系列通用简体中文包<br />
2007.12.23  Kaspersky 7.0.1.321 MP1 正式版家用系列通用简体中文包<br />
界面字体为Vista优化<br />
2007.12.22  Kaspersky 6.0.3.837 商用系列通用简体中文包<br />
2007.12.18  Kaspersky 7.0.1.321 家用系列通用简体中文包<br />
2007.12.16  Kaspersky 7.0.1.319 家用系列通用简体中文包<br />
2007.12.14  Kaspersky 7.0.1.308 家用系列通用简体中文包<br />
2007.12.05  Kaspersky 7.0.1.292 家用系列通用简体中文包<br />
2007.12.01  Kaspersky 7.0.1.289 家用系列通用简体中文包<br />
2007.11.27  Kaspersky 7.0.1.285 家用系列通用简体中文包<br />
2007.11.22  Kaspersky 7.0.1.282 家用系列通用简体中文包<br />
2007.11.21  Kaspersky 7.0.1.279 家用系列通用简体中文包<br />
2007.11.14  Kaspersky 7.0.1.270 家用系列通用简体中文包<br />
2007.11.12  Kaspersky 7.0.1.269 家用系列通用简体中文包<br />
2007.11.10  Kaspersky 7.0.1.267 家用系列通用简体中文包<br />
2007.11.06  Kaspersky 7.0.1.261 家用系列通用简体中文包<br />
2007.11.01  Kaspersky 7.0.1.256 家用系列通用简体中文包<br />
2007.10.30  Kaspersky 7.0.1.255 家用系列通用简体中文包<br />
2007.10.27  Kaspersky 7.0.1.254 家用系列通用简体中文包<br />
2007.10.25  Kaspersky 7.0.1.252 家用系列通用简体中文包<br />
2007.10.23  Kaspersky 6.0.3.830 商用系列通用简体中文包<br />
2007.10.21  Kaspersky 7.0.1.250 家用系列通用简体中文包<br />
2007.10.20  Kaspersky 7.0.0.125 家用系列通用简体中文包 v2<br />
修正一处翻译错误<br />
2007.07.23  Kaspersky 6.0.2.690 商用系列通用简体中文包<br />
2007.07.01  Kaspersky 7.0.0.125 家用系列通用简体中文包<br />
2007.06.30  Kaspersky 7.0.0.124 家用系列通用简体中文包<br />
修正一处多余文字<br />
2007.06.01  Kaspersky 7.0.0.119 TR (2007.05.30) 家用系列通用简体中文包<br />
2007.05.29  Kaspersky 7.0.0.119 TR 家用系列通用简体中文包 v2<br />
增加主界面图片文字翻译,使本地化更彻底<br />
2007.05.22  Kaspersky 7.0.0.119 TR 家用系列通用简体中文包<br />
2007.05.21  Kaspersky 7.0.0.119 RC3 家用系列通用简体中文包<br />
2007.05.20  Kaspersky 7.0.0.118 RC2 家用系列通用简体中文包<br />
2007.05.18  Kaspersky 7.0.0.117 RC 家用系列通用简体中文包<br />
调整一个单词的翻译<br />
修正一处笔误<br />
2007.05.17  Kaspersky 7.0.0.115 家用系列通用简体中文包<br />
2007.05.16  Kaspersky 7.0.0.111 家用系列通用简体中文包<br />
2007.05.15  Kaspersky 7.0.0.103 家用系列通用简体中文包<br />
2007.05.14  Kaspersky 7.0.0.101 家用系列通用简体中文包<br />
2007.05.13  Kaspersky 7.0.0.99 家用系列通用简体中文包<br />
2007.05.12  Kaspersky 7.0.0.96 家用系列通用简体中文包<br />
2007.05.09  Kaspersky 7.0.0.90 家用系列通用简体中文包<br />
改进安全威胁提示翻译用语和显示效果<br />
2007.05.08  Kaspersky 7.0.0.85 家用系列通用简体中文包<br />
2007.05.06  Kaspersky 7.0.0.81 家用系列通用简体中文包<br />
2007.04.29  Kaspersky 7.0.0.60 家用系列通用简体中文包<br />
改进探测弹出窗口用语<br />
2007.04.28  Kaspersky 7.0.0.55 家用系列通用简体中文包<br />
美化部分中文字体显示效果<br />
2007.04.22  Kaspersky 7.0.0.43 家用系列通用简体中文包<br />
补充一处遗漏翻译<br />
2007.04.18  Kaspersky 6.0.2.681 商用系列通用简体中文包<br />
2007.04.05  Kaspersky Internet Security 7.0.0.18 简体中文包<br />
2007.03.22  Kaspersky 6.0.2.621 MP2 CF1 正式版全系列通用简体中文包<br />
2007.03.22  Kaspersky Anti-Virus 7.0.0.6 简体中文包<br />
2007.03.22  Active Virus Shield 6.0.0.308 (2007.03.07)<br />
2007.02.27  Kaspersky 6.0.2.675 全系列通用简体中文包<br />
2007.02.20  Kaspersky 6.0.2.671 全系列通用简体中文包<br />
2007.02.16  Kaspersky 6.0.2.666 全系列通用简体中文包<br />
2007.02.15  Kaspersky 6.0.2.663 全系列通用简体中文包<br />
2007.02.09  Kaspersky 6.0.2.616 全系列通用简体中文包<br />
2007.02.07  Kaspersky 6.0.2.615 全系列通用简体中文包<br />
2007.02.06  Kaspersky 6.0.2.614 MP2 正式版全系列通用简体中文包 v2<br />
修正一处原版文字错误<br />
改进安装程序现在能够在64位系统(XP x64/Vista x64)上正确汉化<br />
2007.01.30  Kaspersky 6.0.2.614 MP2 正式版全系列通用简体中文包<br />
2007.01.29  Kaspersky 6.0.2.613 全系列通用简体中文包<br />
2007.01.28  Kaspersky 6.0.2.609 全系列通用简体中文包<br />
2007.01.27  Kaspersky 6.0.2.605 全系列通用简体中文包<br />
2007.01.26  Kaspersky 6.0.2.600 全系列通用简体中文包<br />
2007.01.25  Kaspersky 6.0.2.595 全系列通用简体中文包<br />
调整一个单词的翻译<br />
2007.01.20  Kaspersky 6.0.2.586 全系列通用简体中文包<br />
改进安装提示信息显示方式<br />
2007.01.13  Kaspersky 6.0.2.573 全系列通用简体中文包<br />
修正一处翻译错误<br />
2006.12.19  Kaspersky 6.0.2.546 全系列通用简体中文包<br />
2006.12.17  Kaspersky 6.0.1.411 MP1 正式版全系列通用简体中文包 v2<br />
更新原版下载地址<br />
2006.12.16  Kaspersky 6.0.2.542 全系列通用简体中文包<br />
修正一处翻译错误<br />
2006.12.02  Kaspersky 6.0.2.523 全系列通用简体中文包<br />
2006.11.25  Kaspersky 6.0.2.509 全系列通用简体中文包<br />
补充两处遗漏翻译<br />
2006.11.21  Kaspersky 6.0.1.411 MP1 正式版全系列通用简体中文包<br />
修正一处翻译错误<br />
2006.11.10  Kaspersky 6.0.1.411 MP1 全系列通用简体中文包<br />
完善汉化安装指南<br />
更改默认开始菜单快捷方式群组名称<br />
2006.11.02  Kaspersky 6.0.1.411 Pre MP1 全系列通用简体中文包<br />
2006.11.01  Kaspersky 6.0.1.410 Pre MP1 全系列通用简体中文包<br />
2006.10.27  Kaspersky 6.0.1.408 Pre MP1 全系列通用简体中文包<br />
2006.10.26  Kaspersky 6.0.1.407 全系列通用简体中文包<br />
修正开发团队名单翻译小问题<br />
2006.10.25  Kaspersky 6.0.1.406 全系列通用简体中文包<br />
2006.10.24  Kaspersky 6.0.1.405 全系列通用简体中文包<br />
2006.10.21  Kaspersky 6.0.1.404 全系列通用简体中文包<br />
2006.10.18  Kaspersky 6.0.1.403 MP1 RC1 全系列通用简体中文包<br />
2006.10.04  Kaspersky 6.0.1.401 Pre TR 全系列通用简体中文包<br />
2006.10.02  Kaspersky 6.0.1.400 Pre TR 全系列通用简体中文包<br />
2006.09.30  Active Virus Shield 6.0.0.308<br />
由于AVS原版软件限制,必须采用覆盖英文语言文件方式安装才能激活,因此AVS汉化不再提供中英文界面切换功能<br />
2006.09.28  Kaspersky 6.0.1.397 Pre TR 全系列通用简体中文包<br />
2006.09.26  Kaspersky 6.0.1.394 Pre TR 全系列通用简体中文包<br />
2006.09.23  Kaspersky 6.0.1.393 Post RC 全系列通用简体中文包<br />
2006.09.21  Kaspersky 6.0.1.392 Post RC 全系列通用简体中文包<br />
改进安装程序<br />
2006.09.18  Kaspersky 6.0.1.389 Post RC 全系列通用简体中文包<br />
统一部分翻译用词<br />
2006.09.15  Kaspersky 6.0.1.388 Post RC 全系列通用简体中文包<br />
2006.09.12  Kaspersky 6.0.1.384 Release Candidate 全系列通用简体中文包<br />
2006.09.11  Active Virus Shield 6.0.0.303 (2006.08.18)<br />
2006.09.08  Kaspersky 6.0.1.386 Post RC 全系列通用简体中文包<br />
2006.09.07  Kaspersky 6.0.1.384 Pre RC 全系列通用简体中文包<br />
2006.09.06  Kaspersky 6.0.1.382 Pre RC3 全系列通用简体中文包<br />
2006.09.01  Kaspersky 6.0.1.380 Pre RC2 全系列通用简体中文包<br />
2006.08.31  Kaspersky 6.0.1.379 Pre RC1 全系列通用简体中文包<br />
2006.08.29  Kaspersky 6.0.1.377 全系列通用简体中文包<br />
增加是否用温和的人声替换原版刺耳的马嘶报警声音选项到安装程序<br />
2006.08.28  Kaspersky 6.0.1.375 全系列通用简体中文包<br />
2006.08.26  Kaspersky 6.0.1.374 全系列通用简体中文包<br />
修正一处过度翻译<br />
修正安装程序乱码<br />
2006.08.24  Kaspersky 6.0.1.371 全系列通用简体中文包<br />
2006.08.21  Kaspersky 6.0.1.369 全系列通用简体中文包<br />
2006.08.19  Kaspersky 6.0.1.368 全系列通用简体中文包<br />
改进安装程序<br />
2006.08.18  Kaspersky 6.0.1.366 全系列通用简体中文包<br />
美化部分中文字体显示效果<br />
2006.08.17  Active Virus Shield 6.0.0.303<br />
2006.08.17  Kaspersky 6.0.0.303 正式版全系列通用简体中文包<br />
大量更新修正简体中文语言文件<br />
2006.08.17  Kaspersky 6.0.1.365 全系列通用简体中文包<br />
大量更新修正简体中文语言文件<br />
2006.08.10  Kaspersky 6.0.1.360 全系列通用简体中文包<br />
大量更新修正简体中文语言文件<br />
2006.08.04  Kaspersky 6.0.1.356 全系列通用简体中文包<br />
大量更新修正简体中文语言文件<br />
根据用户反馈恢复版本状态提问选择.特别注意:如果您选择不进行更改仍然使用Beta激活代码激活您可能无法用下面提供的激活代码激活而只能用Beta许可密钥激活.<br />
2006.08.03  Kaspersky 6.0.1.353 全系列通用简体中文包<br />
完善简体中文语言文件<br />
由于本版本无法使用Beta激活代码激活所以一律进行注册表调整,请使用正式商业版本密钥注册<br />
2006.07.26  Kaspersky 6.0.1.350 全系列通用简体中文包<br />
2006.07.19  Kaspersky 6.0.1.346 全系列通用简体中文包<br />
整合全系列汉化包为通用简体中文包<br />
更改汉化方式,不再采用替换法而是保留英文版本.您可以按F12键切换界面为英文,或者按F5键从英文切换回中文!尊重您的语言喜好!<br />
修正安装程序小错误<br />
2006.07.13  Kaspersky Anti-Virus for Windows File Server 6.0.1.346 简体中文包 v2<br />
2006.07.13  Kaspersky Anti-Virus for Windows Workstations 6.0.1.346 简体中文包 v2<br />
2006.07.13  Kaspersky Anti-Virus 6.0.1.346 简体中文包 v2<br />
2006.07.13  Kaspersky Internet Security 6.0.1.346 简体中文包 v2<br />
增加是否使用正式版密钥选项到安装程序<br />
修正安装程序小错误<br />
2006.07.12  Kaspersky Anti-Virus for Windows File Server 6.0.1.346 简体中文包<br />
2006.07.12  Kaspersky Anti-Virus for Windows Workstations 6.0.1.346 简体中文包<br />
2006.07.12  Kaspersky Anti-Virus 6.0.1.346 简体中文包<br />
2006.07.11  Kaspersky Internet Security 6.0.1.346 简体中文包</span></p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=97&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_97" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/97/feed</wfw:commentRss>
		</item>
		<item>
		<title>Web攻击和防御（一） - 安全检测工具（1）</title>
		<link>http://goku.spitv.net/archives/96</link>
		<comments>http://goku.spitv.net/archives/96#comments</comments>
		<pubDate>Tue, 01 Jul 2008 14:25:13 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[asp.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[版本]]></category>

		<category><![CDATA[索引]]></category>

		<category><![CDATA[编码]]></category>

		<category><![CDATA[ext]]></category>

		<category><![CDATA[软件]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[IM]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[js]]></category>

		<category><![CDATA[JSP]]></category>

		<category><![CDATA[Search]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[test]]></category>

		<category><![CDATA[URL]]></category>

		<category><![CDATA[visual studio]]></category>

		<category><![CDATA[windows]]></category>

		<category><![CDATA[安全]]></category>

		<category><![CDATA[库]]></category>

		<category><![CDATA[性能]]></category>

		<category><![CDATA[指数]]></category>

		<category><![CDATA[搜索引擎]]></category>

		<category><![CDATA[注入]]></category>

		<category><![CDATA[测试]]></category>

		<category><![CDATA[下载]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=96</guid>
		<description><![CDATA[先从SQL注入攻击说起吧。
前一段时间的SQL注入攻击可以说让国内以及国外大量网站沦陷，几个攻击变种中幸好是update而不是delete，否则众多网站损失更大，不过从犯罪的角度来说，并不是这些... ]]></description>
			<content:encoded><![CDATA[<p>先从SQL注入攻击说起吧。</p>
<p>前一段时间的SQL注入攻击可以说让国内以及国外大量网站沦陷，几个攻击变种中幸好是update而不是delete，否则众多网站损失更大，不过从犯罪的角度来说，并不是这些攻击者心慈手软，而是update才能置入网页木马，也才能在置入成功后获得预期的利润。此次大规模的SQL Injection是使用一个叫做Asprox的自动化工具来借助Google搜索引擎寻找目标网站并自动实施SQL注入的，就连趋势科技网站也未能幸免，惨被注入。此次SQL注入攻击风潮从3月份开始，进入6月份后被攻击的网站仍在大量沦陷。</p>
<p>在很多所谓的开发高手来看，SQL注入只是菜鸟才会犯的低级错误，其实不然。一个中大型的网站，在他不断发展的过程中，网站门户的程序都是Patch模式的逐步叠加，随着页面的增加以及版本的螺旋上升，SQL注入的危险百分比也会指数增长，尤其是国内各个网站开发的模式而言。当一个中大型网站的页面达到几万甚至几十万的时候，当这个网站的程序不断叠加积累，诸多历史页面已经处于失控的时候，如何避免SQL Inject攻击将会是一件令人非常头疼的事情，因为你此时是不可能完全重写整个网站或者完全对所有页面做代码安全审核的。</p>
<p>在这众多的历史页面代码中，一个微小的疏漏就导致你的DB完全向攻击者敞开，甚至威胁到服务器磁盘数据。不要侥幸的认为，你的漏洞页面有可能隐藏的很深，现在对于Google而言，什么都不是隐藏的，再加上SQL注入的自动化操作，你的历史页面越多，你的危险就越大。</p>
<p>我以SQL Injection为例就是为了说明其实Web威胁攻击并不是说需要多么高深的技术才可以进行实施，这些攻击往往是你在认为很简单就可以抵御的时候来进行实施的。另外一个极端就是，所谓的社会工程学攻击，各位可以Google一下就会了解。可以说 ，目前的各类攻击已经不再像很早以前那样为了显示自身技术而进行的有意或无意的攻击破坏了，现在大量的Web攻击都是带有利益驱使性的，也更具危害性。</p>
<p>这些Web攻击都是非常危险的，因为不论你的硬件防火墙或者入侵检测系统如何强大，是无法判断这类Web攻击的，因为它们都是合法的HTTP请求。所以根据统计，目前的Web攻击除了操作系统以及各类服务器端应用软件的漏洞外，绝大部分（70%以上）都是此类“合法的”Web攻击。</p>
<p>因此，抵御此类攻击一是需要检测你的应用程序代码，二是可以采用服务器端的针对访问请求以及内容的检测过滤。</p>
<p><span id="more-96"></span></p>
<p>针对第一类，目前业界有非常多的安全检测工具，比如HP WebInspect，NStalker-WAS（NStalker-Web Application Security Scanner），IBM Rational AppScan(Watchfire AppScan)，Acunetix Web Vulnerability Scanner等等，当然这里我列举的都是商业软件，而没有包含相应的开源软件，在这方面而言，商业软件用来做安全威胁评估的优势更明显，也更合适。</p>
<p>这类模拟攻击检测软件有庞大的规则库以及模拟场景库，可以代替繁杂易错的人工检测。</p>
<p>针对第二类，则可以通过服务器端的过滤和监测机制来最大程度上保证IIS Web服务器的安全，比如微软的IIS Lock。在IIS 7推出后，做此类过滤更加简单和便捷了。国内外也有针对此类的软件产品，比如Port80 ServerDefender。这类产品可以在服务器端对于HTTP Request / POST / Cookie等做过滤和检测，抵御此类Web攻击。</p>
<p><a href="http://blog.joycode.com/images/blog.joycode.com/uestc95/WindowsLiveWriter/IBMRationalAppScan_9A7D/image_2.png" target="_blank"><img style="border-width: 0px;" src="http://blog.joycode.com/images/blog.joycode.com/uestc95/WindowsLiveWriter/IBMRationalAppScan_9A7D/image_thumb.png" border="0" alt="image" width="557" height="581" /></a></p>
<p>（此图片转自于IBM网站，特注明）</p>
<p> </p>
<p>排名前两位的是XSS攻击以及SQL Injection攻击。对于XSS攻击，很多开发者想必会嗤之以鼻的，因为目前而言XSS攻击都很少能破坏掉服务器端的数据，但是XSS最大危害在于钓鱼式攻击，这对于一个成功的网站而言，对其信誉的打击将是致命的，因为展现在用户面前的是合法的网站URL地址，只是XSS攻击部分被编码了。一旦用户遭受此类攻击，对于你网站的信任将会大大降低，现在有什么比得罪你的忠实用户的危害性更大呢？</p>
<p>上面我们提到了很多安全检测工具，其中提到的那四种工具我都有过一定使用(Trial或者Test)，其中的AppScan是我印象最为深刻的，也是效果较好的一个。Rational家族随着IBM的不断收购，已经越来越庞大，通过收购Watchfire从而获得了这款企业级安全检测产品，并被Rational产品系列所整合，使之符合Rational的完整涵盖软件生命周期的目的。</p>
<p><a href="http://blog.joycode.com/images/blog.joycode.com/uestc95/WindowsLiveWriter/IBMRationalAppScan_9A7D/image_4.png" target="_blank"><img style="border-width: 0px;" src="http://blog.joycode.com/images/blog.joycode.com/uestc95/WindowsLiveWriter/IBMRationalAppScan_9A7D/image_thumb_1.png" border="0" alt="image" width="522" height="336" /></a></p>
<p>Rational AppScan开发版本会有针对于Visual Studio 的AddIn，来在程序开发过程中就能进行代码安全审计和检测；同时也有QA版本；当然我们使用更多的是产品发布后定期的安全审计以及检测了。各版本的比较可以参见：<a title="http://www-142.ibm.com/software/dre/hmc/compare.wss?HMC02=C126096V43460Q17" href="http://www-142.ibm.com/software/dre/hmc/compare.wss?HMC02=C126096V43460Q17">http://www-142.ibm.com/software/dre/hmc/compare.wss?HMC02=C126096V43460Q17</a> </p>
<p>Rational AppScan 7.7全功能测试版本在IBM网站可以免费下载到（<a title="http://www14.software.ibm.com/webapp/download/search.jsp?pn=Rational+AppScan" href="http://www14.software.ibm.com/webapp/download/search.jsp?pn=Rational+AppScan">http://www14.software.ibm.com/webapp/download/search.jsp?pn=Rational+AppScan</a>），目前CSDN好像也在进行AppScan的市场活动，有兴趣可以去CSDN找一下即可。</p>
<p>下一个post会详细讲述一下如何针对一个真实网站进行安全审计。</p>
<p> </p>
<p>&#8212;</p>
<p>可能的大概目录</p>
<p>Web攻击和防御（一） - 安全检测工具（1）介绍</p>
<p>Web攻击和防御（二） - 安全检测工具（2）AppScan详解</p>
<p>Web攻击和防御（三） - 安全检测工具（3）AppScan数据分析</p>
<p>Web攻击和防御（四） - IIS安全防护，IIS Filter介绍</p>
<p>Web攻击和防御（五） - IIS安全防护，IIS Extend介绍</p>
<p>Web攻击和防御（六） - IIS安全防护，IIS 5.x 、6、7区别对待 </p>
<p>Web攻击和防御（七） - Web Server Guard介绍</p>
<p>Web攻击和防御（八） - Web Server Guard安全防护使用详解</p>
<p>Web攻击和防御（九） - Web Server Guard性能调优使用详解</p>
<p>Web攻击和防御（十） - Web Server Guard服务器监测使用详解</p>
<p>Web攻击和防御（十一） - 完成不可能的事情：使用C#编写IIS Filter（IIS 5.x/6.0）</p>
<p>Web攻击和防御（十二） - IIS 7.0 Filter</p>
<p>Web攻击和防御（十三） - IIS 7.0 安全防护</p>
<p>Web攻击和防御（&#8230;.. ） - &#8230;&#8230;&#8230;.</p>
<p> </p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=96&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_96" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/96/feed</wfw:commentRss>
		</item>
		<item>
		<title>c#语法之lock 语句</title>
		<link>http://goku.spitv.net/archives/95</link>
		<comments>http://goku.spitv.net/archives/95#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:59:29 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[asp.net]]></category>

		<category><![CDATA[av]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[线程]]></category>

		<category><![CDATA[Exception]]></category>

		<category><![CDATA[ext]]></category>

		<category><![CDATA[锁定]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[key]]></category>

		<category><![CDATA[test]]></category>

		<category><![CDATA[thread]]></category>

		<category><![CDATA[vb.net]]></category>

		<category><![CDATA[共享]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=95</guid>
		<description><![CDATA[lock 关键字将语句块标记为临界区，方法是获取给定对象的互斥锁，执行语句，然后释放该锁。此语句的形式如下：


Object thisLock = new Object();
lock (thisLock)
{
    // Critical code section.
}


lock 关键字... ]]></description>
			<content:encoded><![CDATA[<p>lock 关键字将语句块标记为临界区，方法是获取给定对象的互斥锁，执行语句，然后释放该锁。此语句的形式如下：</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">Object thisLock = <span style="color: #0000ff;">new</span> Object();</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #0000ff;">lock</span> (thisLock)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #008000;">// Critical code section.</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<p>lock 关键字可确保当一个线程位于代码的临界区时，另一个线程不会进入该临界区。如果其他线程试图进入锁定的代码，则它将一直等待（即被阻止），直到该对象被释放。</p>
<p>lock 关键字在块的开始处调用 Enter，而在块的结尾处调用 Exit。</p>
<p>通常，应避免锁定 public 类型，否则实例将超出代码的控制范围。常见的结构 lock (this)、lock (typeof (MyType)) 和 lock (&#8221;myLock&#8221;) 违反此准则：</p>
<ul>
<li>如果实例可以被公共访问，将出现 lock (this) 问题。</li>
<li>如果 MyType 可以被公共访问，将出现 lock (typeof (MyType)) 问题。</li>
<li>由于进程中使用同一字符串的任何其他代码都将共享同一个锁，所以出现 lock(“myLock”) 问题。</li>
</ul>
<p><span id="more-95"></span></p>
<p>最佳做法是定义 private 对象来锁定, 或 private static 对象变量来保护所有实例所共有的数据。</p>
<p>下例显示的是在 C# 中使用线程的简单示例。</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #008000;">// statements_lock.cs</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #0000ff;">using</span> System;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">using</span> System.Threading;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">class</span> ThreadTest</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> RunMe()</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        Console.WriteLine(<span style="color: #006080;">&#8220;RunMe called&#8221;</span>);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> Main()</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        ThreadTest b = <span style="color: #0000ff;">new</span> ThreadTest();</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        Thread t = <span style="color: #0000ff;">new</span> Thread(b.RunMe);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        t.Start();</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<p>结果为：</p>
<pre>RunMe called</pre>
<p> </p>
<p>下例使用线程和 lock。只要 lock 语句存在，语句块就是临界区并且 balance 永远不会是负数。</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #008000;">// statements_lock2.cs</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #0000ff;">using</span> System;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">using</span> System.Threading;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">class</span> Account</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #0000ff;">private</span> Object thisLock = <span style="color: #0000ff;">new</span> Object();</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #0000ff;">int</span> balance;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    Random r = <span style="color: #0000ff;">new</span> Random();</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #0000ff;">public</span> Account(<span style="color: #0000ff;">int</span> initial)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        balance = initial;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #0000ff;">int</span> Withdraw(<span style="color: #0000ff;">int</span> amount)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        <span style="color: #008000;">// This condition will never be true unless the lock statement</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        <span style="color: #008000;">// is commented out:</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        <span style="color: #0000ff;">if</span> (balance &lt; 0)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> Exception(<span style="color: #006080;">&#8220;Negative Balance&#8221;</span>);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        <span style="color: #008000;">// Comment out the next line to see the effect of leaving out </span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        <span style="color: #008000;">// the lock keyword:</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        <span style="color: #0000ff;">lock</span>(thisLock)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">            <span style="color: #0000ff;">if</span> (balance &gt;= amount)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">                Console.WriteLine(<span style="color: #006080;">&#8220;Balance before Withdrawal :  &#8220;</span> + balance);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">                Console.WriteLine(<span style="color: #006080;">&#8220;Amount to Withdraw        : -&#8221;</span> + amount);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">                balance = balance - amount;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">                Console.WriteLine(<span style="color: #006080;">&#8220;Balance after Withdrawal  :  &#8220;</span> + balance);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">                <span style="color: #0000ff;">return</span> amount;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">            <span style="color: #0000ff;">else</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">                <span style="color: #0000ff;">return</span> 0; <span style="color: #008000;">// transaction rejected</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> DoTransactions()</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = 0; i &lt; 100; i++)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            Withdraw(r.Next(1, 100));</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">}</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">class</span> Test</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> Main()</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        Thread[] threads = <span style="color: #0000ff;">new</span> Thread[10];</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        Account acc = <span style="color: #0000ff;">new</span> Account(1000);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = 0; i &lt; 10; i++)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">            Thread t = <span style="color: #0000ff;">new</span> Thread(<span style="color: #0000ff;">new</span> ThreadStart(acc.DoTransactions));</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            threads[i] = t;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = 0; i &lt; 10; i++)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            threads[i].Start();</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<p class="akst_link"><a href="http://goku.spitv.net/?p=95&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_95" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/95/feed</wfw:commentRss>
		</item>
		<item>
		<title>C#语法之var类型</title>
		<link>http://goku.spitv.net/archives/94</link>
		<comments>http://goku.spitv.net/archives/94#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:55:35 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[asp.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[IM]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[linq]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=94</guid>
		<description><![CDATA[在方法范围中声明的变量可以具有隐式类型 var。隐式类型的本地变量是强类型变量（就好像您已经声明该类型一样），但由编译器确定类型。下面的两个 i 声明在功能上是等效的：


var i = 10; /... ]]></description>
			<content:encoded><![CDATA[<p>在方法范围中声明的变量可以具有隐式类型 var。隐式类型的本地变量是强类型变量（就好像您已经声明该类型一样），但由编译器确定类型。下面的两个 i 声明在功能上是等效的：</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">var i = 10; <span style="color: #008000;">// implicitly typed</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #0000ff;">int</span> i = 10; <span style="color: #008000;">//explicitly typed</span></pre>
</div>
</div>
<p>过多使用 var 可能使源代码的可读性在他人眼里变差。建议仅在必要时使用 var，即仅在该变量将用于存储匿名类型或匿名类型集合时才使用它。</p>
<p>下面的示例演示了两个查询表达式。在第一个表达式中，允许但不需要使用 var，因为可以将查询结果的类型显式声明为 IEnumerable&lt;string&gt;。但是，在第二个表达式中必须使用 var，因为结果是一个匿名类型集合，而该类型的名称只有编译器本身可以访问。请注意，在第二个示例中，foreach 迭代变量 item 也必须转换为隐式类型。</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #008000;">// Example #1: var is optional because</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #008000;">// the select clause specifies a string</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">string</span>[] words = { <span style="color: #006080;">&#8220;apple&#8221;</span>, <span style="color: #006080;">&#8220;strwawberry&#8221;</span>, <span style="color: #006080;">&#8220;grape&#8221;</span>, <span style="color: #006080;">&#8220;peach&#8221;</span>, <span style="color: #006080;">&#8220;banana&#8221;</span> };</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">var wordQuery = from word <span style="color: #0000ff;">in</span> words</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">            <span style="color: #0000ff;">where</span> word[0] == <span style="color: #006080;">&#8216;g&#8217;</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            select word;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #008000;">// Because each element in the sequence is a string, </span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #008000;">// not an anonymous type, var is optional here also.</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #0000ff;">foreach</span> (<span style="color: #0000ff;">string</span> s <span style="color: #0000ff;">in</span> wordQuery)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    Console.WriteLine(s);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">}</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #008000;">// Example #2: var is required because</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #008000;">// the select clause specifies an anonymous type</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">var custQuery = from cust <span style="color: #0000ff;">in</span> customers</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">            <span style="color: #0000ff;">where</span> cust.City == <span style="color: #006080;">&#8220;Phoenix&#8221;</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">            select <span style="color: #0000ff;">new</span> { cust.Name, cust.Phone };</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #008000;">// var must be used because each item </span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"><span style="color: #008000;">// in the sequence is an anonymous type</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">foreach</span> (var item <span style="color: #0000ff;">in</span> custQuery)</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    Console.WriteLine(<span style="color: #006080;">&#8220;Name={0}, Phone={1}&#8221;</span>, item.Name, item.Phone);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<p class="akst_link"><a href="http://goku.spitv.net/?p=94&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_94" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/94/feed</wfw:commentRss>
		</item>
		<item>
		<title>C#语法之event关键字</title>
		<link>http://goku.spitv.net/archives/93</link>
		<comments>http://goku.spitv.net/archives/93#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:55:03 +0000</pubDate>
		<dc:creator>GoKu</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[asp.net]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[IDE]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://goku.spitv.net/?p=93</guid>
		<description><![CDATA[event 关键字用于在发行者类中声明事件。
下面的示例演示如何声明和引发将 EventHandler 用作基础委托类型的事件。


public class Publisher
{
    // Declare the delegate (if using non-generic pattern).
    public deleg... ]]></description>
			<content:encoded><![CDATA[<p>event 关键字用于在发行者类中声明事件。</p>
<p>下面的示例演示如何声明和引发将 EventHandler 用作基础委托类型的事件。</p>
<div>
<div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Publisher</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">{</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #008000;">// Declare the delegate (if using non-generic pattern).</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">delegate</span> <span style="color: #0000ff;">void</span> SampleEventHandler(<span style="color: #0000ff;">object</span> sender, SampleEventArgs e);</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #008000;">// Declare the event.</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">event</span> SampleEventHandler SampleEvent;</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;"> </pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #008000;">// Wrap the event in a protected virtual method</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    <span style="color: #008000;">// to enable derived classes to raise the event.</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">void</span> RaiseSampleEvent()</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">    {</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">        <span style="color: #008000;">// Raise the event by using the () operator.</span></pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">        SampleEvent(<span style="color: #0000ff;">this</span>, <span style="color: #0000ff;">new</span> SampleEventArgs(<span style="color: #006080;">&#8220;Hello&#8221;</span>));</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px;">    }</pre>
<pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px;">}</pre>
</div>
</div>
<div> </div>
<p>事件是特殊类型的多路广播委托，仅可从声明它们的类或结构（发行者类）中调用。如果其他类或结构订阅了该事件，则当发行者类引发该事件时，会调用其事件处理程序方法。</p>
<p>事件可标记为 public、private、protected、internal 或 protected internal。这些访问修饰符定义类的用户访问事件的方式。</p>
<p>下面的关键字可应用于事件。</p>
<p> </p>
<p> </p>
<table border="0" cellspacing="0" cellpadding="2" width="687">
<tbody>
<tr>
<td width="199" valign="top">关键字</td>
<td width="486" valign="top">说明</td>
</tr>
<tr>
<td width="199" valign="top">static</td>
<td width="486" valign="top">即使类没有实例，调用方也能在任何时候使用该事件。</td>
</tr>
<tr>
<td width="199" valign="top">virtual</td>
<td width="486" valign="top">允许派生类通过使用 override 关键字来重写事件行为。</td>
</tr>
<tr>
<td width="199" valign="top">sealed</td>
<td width="486" valign="top">指定对于派生类它不再属虚拟性质。</td>
</tr>
<tr>
<td width="199" valign="top">abstract</td>
<td width="486" valign="top">编译器不会生成 add 和 remove 事件访问器块，因此派生类必须提供自己的实现。</td>
</tr>
</tbody>
</table>
<p> </p>
<p>通过使用 static 关键字，可以将事件声明为静态事件。即使类没有任何实例，调用方也能在任何时候使用静态事件。通过使用 virtual 关键字，可以将事件标记为虚拟事件。这样，派生类就可以通过使用 override 关键字来重写事件行为。重写虚事件的事件也可以为 sealed，以表示其对于派生类不再是虚事件。最后，可以将事件声明为 abstract，这意味着编译器不会生成 add 和 remove 事件访问器块。因此派生类必须提供其自己的实现。</p>
<p class="akst_link"><a href="http://goku.spitv.net/?p=93&amp;akst_action=share-this"  title="可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！" id="akst_link_93" class="akst_share_link" rel="nofollow">收藏、分享这篇文章!</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://goku.spitv.net/archives/93/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
