<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>慢步在雲端...    邱英瑞(Jacky) : C#</title><link>http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx</link><description>Tags: C#</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>SQL Injection 相關資訊</title><link>http://blogs.msdn.com/jchiou/archive/2008/05/26/sql-injection.aspx</link><pubDate>Mon, 26 May 2008 11:01:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8552068</guid><dc:creator>jchiou</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/8552068.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=8552068</wfw:commentRss><description>&lt;p&gt;&lt;b&gt;&lt;u&gt;SQL Injection(&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;資料隱碼)攻擊行為簡介&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;以下是此類攻擊的流程&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;1. 駭客運用搜尋引擎尋找網頁上的漏洞，並運用自動化工具攻擊網路服務器。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. 一個&amp;lt;script&amp;gt;字串附加到在後端運行的SQL伺服器中所有的文本或可變長字串列中。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. 這個腳本與駭客所控制伺服器連接。該伺服器含有一些常用軟體的利用代碼，如Microsoft MS06-014， 協力廠商軟體漏洞，（例如常用的媒體播放器及內容下載軟體）。有的時候還有一些零時差漏洞。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. 當終端使用者試圖用IE流覽正常的網站時，由於這些網頁都將從SQL伺服器獲取資料，這些資料同時包含了惡意腳本&amp;lt;script&amp;gt;。而 這些腳本會自動連接到駭客的網站。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. 如果普通使用者沒有依照建議安裝修正程式，防毒軟體，或尚未安裝Microsoft或協力廠商軟體最新版本的更新，那麼他們的電腦就會被感染。&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jchiou/WindowsLiveWriter/SQLInjection_E14E/clip_image001_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="301" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/jchiou/WindowsLiveWriter/SQLInjection_E14E/clip_image001_thumb.jpg" width="557" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jchiou/WindowsLiveWriter/SQLInjection_E14E/clip_image001_2.jpg"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;SQL Injection(&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;資料隱碼)攻擊行為的解決方案&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;一旦web伺服器遭到SQL注入攻擊，請遵循如下步驟：&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;1、關閉網站&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2、檢查IIS日誌，查找引起這次攻擊的有漏洞的目標網頁&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3、聯繫web開發者，修改並加強ASP頁面。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;注意這只是一種變通的解決方法，只能臨時解決SQL Injection問題。該網站可能在伺服器再次聯網後被再次注入。為了徹底解決這個問題，請參閱&amp;#8220;預防&lt;u&gt;SQL Injection(資料隱碼)攻擊&lt;/u&gt;的解決方案&amp;#8221;。&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;預防SQL注入攻擊的解決方案&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;這種SQL Injection攻擊是由網頁程式開發不符合安全編碼的要求所引起的。為了防止攻擊，我們需要驗證所有網頁的字串輸入的函數。比如說，帶有用戶名和密碼輸入框的網站登錄頁。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;我們也可以在微軟的官方網站上找到安全指導和最佳實踐建議，來應對&lt;u&gt;SQL Injection(資料隱碼)攻擊&lt;/u&gt;。&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;用來減緩與解決SQL Injection攻擊的最佳實踐建議可以在這裡找到：&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/magazine/cc163917.aspx"&gt;http://msdn2.microsoft.com/en-us/magazine/cc163917.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;SQL 資料隱碼&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/zh-tw/library/ms161953.aspx"&gt;http://msdn.microsoft.com/zh-tw/library/ms161953.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;『資料隱碼』SQL Injection的源由與防範之道 &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.microsoft.com/taiwan/sql/SQL_Injection.htm"&gt;http://www.microsoft.com/taiwan/sql/SQL_Injection.htm&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;SQL Injection (資料隱碼)&amp;#8211; 駭客的 SQL填空遊戲(上)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.microsoft.com/taiwan/sql/SQL_Injection_G1.htm"&gt;http://www.microsoft.com/taiwan/sql/SQL_Injection_G1.htm&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;SQL Injection (資料隱碼)&amp;#8211; 駭客的 SQL填空遊戲(下) &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.microsoft.com/taiwan/sql/SQL_Injection_G2.htm"&gt;http://www.microsoft.com/taiwan/sql/SQL_Injection_G2.htm&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;How To - Protect from Injection Attacks in ASP.NET&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb355989.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb355989.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;How To - Protect from SQL Injection in ASP.NET &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998271.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms998271.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;How To - Protect from Cross-Site Scripting in ASP.NET&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998274.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms998274.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Design Guidelines&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302420.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa302420.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Arch/Design Inspection&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302421.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa302421.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;對於用戶端使用者，請確保電腦系統中已安裝了微軟及協力廠商軟體的最新安全修正程式以及最新的防毒程式定義檔。 &lt;/p&gt;  &lt;p&gt;注意，SQL Injection 不只會在 MS SQL Server 上會發生，在其它廠牌的資料庫產品也可能會有相同的情況發生。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8552068" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/SharePoint+Server+2007/default.aspx">SharePoint Server 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Office+2007/default.aspx">Office 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Exchange+2007/default.aspx">Exchange 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/patterns+_2600_+practices/default.aspx">patterns &amp; practices</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/IE7/default.aspx">IE7</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Windows+2008/default.aspx">Windows 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Windows+2003/default.aspx">Windows 2003</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/CRM+4.0/default.aspx">CRM 4.0</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Project+Server+2007/default.aspx">Project Server 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/RMS/default.aspx">RMS</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/TFS+2008/default.aspx">TFS 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/VSTT/default.aspx">VSTT</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/BizTalk+Server+2006/default.aspx">BizTalk Server 2006</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/TFS+2005/default.aspx">TFS 2005</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Team+Build/default.aspx">Team Build</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Groove+2007/default.aspx">Groove 2007</category></item><item><title>請協助我們改善您在 MSDN 上尋找資訊的體驗</title><link>http://blogs.msdn.com/jchiou/archive/2008/04/25/msdn.aspx</link><pubDate>Fri, 25 Apr 2008 05:31:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8423255</guid><dc:creator>jchiou</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/8423255.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=8423255</wfw:commentRss><description>&lt;p&gt;您是否覺得很難在 MSDN 快速找到需要的資訊? &lt;/p&gt;  &lt;p&gt;MSDN 團隊正致力於改善您在尋找所需資訊時的體驗。請花個兩分鐘來告訴我們您想要的內容格式和搜尋方式。 &lt;a href="http://www.surveymonkey.com/s.aspx?sm=OWE6q6ruFnG2%2ftC54EdiqQ%3d%3d"&gt;詳細內容...&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;雖然 MSDN 已經比以前好很多了，但我們都希望它可以更好，筆者自己也有做完問卷，大家有空時可以填一下，感恩。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8423255" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/SharePoint+Server+2007/default.aspx">SharePoint Server 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Office+2007/default.aspx">Office 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Exchange+2007/default.aspx">Exchange 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/patterns+_2600_+practices/default.aspx">patterns &amp; practices</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/IE7/default.aspx">IE7</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Windows+2008/default.aspx">Windows 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Windows+2003/default.aspx">Windows 2003</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/CRM+4.0/default.aspx">CRM 4.0</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Project+Server+2007/default.aspx">Project Server 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/RMS/default.aspx">RMS</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/TFS+2008/default.aspx">TFS 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/VSTT/default.aspx">VSTT</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/BizTalk+Server+2006/default.aspx">BizTalk Server 2006</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Vista/default.aspx">Vista</category></item><item><title>C# 3.0 - 新功能大綱</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/15/c-3-0.aspx</link><pubDate>Sat, 15 Dec 2007 17:55:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6777980</guid><dc:creator>jchiou</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6777980.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6777980</wfw:commentRss><description>&lt;p&gt;&lt;font size="2"&gt;C#3.0 Design Themes&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;Improve on C#2.0&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Language Integrated Query (LINQ) &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;100% Backwards Compatible&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;C# 3.0 &amp;#8211; New Language Features&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;Local Variable Type Inference&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Object Initializers&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Collection Initializers&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Anonymous Types&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Auto-Implemented Properties&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Extension Methods&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Lambdas&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Query Expressions&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Expression Trees&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Partial Methods&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6777980" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>C# 3.0 - 新功能 - Lambda expressoin</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/15/c-3-0-lambda-expressoin.aspx</link><pubDate>Sat, 15 Dec 2007 17:42:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6777920</guid><dc:creator>jchiou</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6777920.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6777920</wfw:commentRss><description>&lt;p&gt;&lt;font size="2"&gt;&amp;quot;=&amp;gt;&amp;quot;這個符號除了代表『等於大於』外，在 C# 3.0 語法中也表示 Lambda expression，它可以讓我們的程式碼更少，也可以讓程式的可讀性更高。&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="2"&gt;詳細說明：&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn2.microsoft.com/en-us/library/bb397687(VS.90).aspx" href="http://msdn2.microsoft.com/en-us/library/bb397687(VS.90).aspx"&gt;&lt;font size="2"&gt;http://msdn2.microsoft.com/en-us/library/bb397687(VS.90).aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;font size="2"&gt;完整範例：&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;using System;     &lt;br /&gt;using System.Collections.Generic;      &lt;br /&gt;using System.Linq;      &lt;br /&gt;using System.Text; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;namespace NewLanguageFeatures     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class Customer      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int CustomerId { get; private set; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Name { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string City { get; set; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Customer(int Id)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CustomerId = Id;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public override string ToString()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Name + &amp;quot;\t&amp;quot; + City + &amp;quot;\t&amp;quot; + CustomerId;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; class Program     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;Customer&amp;gt; customers = CreateCustomers(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Customers:\n&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var customerDictionary = new Dictionary&amp;lt;Customer, string&amp;gt;(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var c in customers)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; customerDictionary.Add(c, c.Name); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var matches = customerDictionary.FilterBy(     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (customer, name) &lt;strong&gt;=&amp;gt;&lt;/strong&gt; name.StartsWith(&amp;quot;墩墩&amp;quot;));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var m in matches)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(m);&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static List&amp;lt;Customer&amp;gt; CreateCustomers()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new List&amp;lt;Customer&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(1) { Name = &amp;quot;波羅實業&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台北市&amp;quot; },      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(2) { Name = &amp;quot;湯姆科技&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台中市&amp;quot; },      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(3) { Name = &amp;quot;墩墩數位&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;高雄市&amp;quot; },      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(4) { Name = &amp;quot;摩利光電&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;新竹市&amp;quot; },      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(5) { Name = &amp;quot;瑞之路邊攤&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;花蓮市&amp;quot; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; public delegate bool KeyValueFilter&amp;lt;K, V&amp;gt;(K key, V value); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; public static class Extensions     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static List&amp;lt;K&amp;gt; FilterBy&amp;lt;K, V&amp;gt;(      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this Dictionary&amp;lt;K, V&amp;gt; items,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; KeyValueFilter&amp;lt;K, V&amp;gt; filter)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var result = new List&amp;lt;K&amp;gt;(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (KeyValuePair&amp;lt;K, V&amp;gt; element in items)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (filter(element.Key, element.Value))      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result.Add(element.Key);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return result;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static List&amp;lt;T&amp;gt; Append&amp;lt;T&amp;gt;(this List&amp;lt;T&amp;gt; a, List&amp;lt;T&amp;gt; b)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var newList = new List&amp;lt;T&amp;gt;(a);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newList.AddRange(b);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return newList;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static bool Compare(this Customer customer1, Customer customer2)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (customer1.CustomerId == customer2.CustomerId &amp;amp;&amp;amp;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; customer1.Name == customer2.Name &amp;amp;&amp;amp;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; customer1.City == customer2.City)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return true;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return false;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;font size="2"&gt;執行結果：&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Customers: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;墩墩數位&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 高雄市&amp;#160; 3     &lt;br /&gt;Press any key to continue . . .&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;筆者使用的環境：Windows 2008 RC0 English + Visual Studio 2008 &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6777920" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>C# 3.0 - 新功能 - implicit Type</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/15/c-3-0-implicit-type.aspx</link><pubDate>Sat, 15 Dec 2007 16:35:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6777555</guid><dc:creator>jchiou</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6777555.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6777555</wfw:commentRss><description>&lt;p&gt;C# 3.0 允許區域變數（local variable）使用 var 來宣告變數，它並不是以前 VB 6 的那個 var。&lt;/p&gt;  &lt;p&gt;當使用 var 宣告時，CLR 會在編譯階段，由實際的值（等號右邊的值）來判斷它是屬於那個型態&lt;/p&gt;  &lt;p&gt;使用以下範例來說明：&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;Customer&amp;gt; customers = CreateCustomers(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Customers:\n&amp;quot;);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //foreach (Customer c in customers)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (&lt;strong&gt;var&lt;/strong&gt; c in customers)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(c); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;var&lt;/strong&gt; vInt = 168;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;var&lt;/strong&gt; vString = &amp;quot;這是字串&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;var&lt;/strong&gt; x = new[] { 1, 2, 3 }; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;vInt : {0}&amp;quot;, vInt);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;vString : {0}&amp;quot;, vString);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach(&lt;strong&gt;var&lt;/strong&gt; a in x)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(a);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;執行結果：&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Customers: &lt;/p&gt;  &lt;p&gt;波羅實業&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 台北市&amp;#160; 1   &lt;br /&gt;湯姆科技&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 台中市&amp;#160; 2    &lt;br /&gt;墩墩數位&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 高雄市&amp;#160; 3    &lt;br /&gt;摩利光電&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 新竹市&amp;#160; 4    &lt;br /&gt;瑞之路邊攤&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 花蓮市&amp;#160; 5 &lt;/p&gt;  &lt;p&gt;vInt : 168   &lt;br /&gt;vString : 這是字串    &lt;br /&gt;1    &lt;br /&gt;2    &lt;br /&gt;3    &lt;br /&gt;Press any key to continue . . .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;完整範例：&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;using System;   &lt;br /&gt;using System.Collections.Generic;    &lt;br /&gt;using System.Linq;    &lt;br /&gt;using System.Text; &lt;/p&gt;  &lt;p&gt;namespace NewLanguageFeatures   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class Customer    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int CustomerId { get; private set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Name { get; set; }   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string City { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Customer(int Id)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CustomerId = Id;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public override string ToString()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Name + &amp;quot;\t&amp;quot; + City + &amp;quot;\t&amp;quot; + CustomerId;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; class Program   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;Customer&amp;gt; customers = CreateCustomers(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Customers:\n&amp;quot;);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //foreach (Customer c in customers)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var c in customers)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(c); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var vInt = 168;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var vString = &amp;quot;這是字串&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var x = new[] { 1, 2, 3 }; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;vInt : {0}&amp;quot;, vInt);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;vString : {0}&amp;quot;, vString);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach(var a in x)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(a);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static List&amp;lt;Customer&amp;gt; CreateCustomers()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new List&amp;lt;Customer&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(1) { Name = &amp;quot;波羅實業&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台北市&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(2) { Name = &amp;quot;湯姆科技&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台中市&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(3) { Name = &amp;quot;墩墩數位&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;高雄市&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(4) { Name = &amp;quot;摩利光電&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;新竹市&amp;quot; },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(5) { Name = &amp;quot;瑞之路邊攤&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;花蓮市&amp;quot; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }   &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;這個功能筆者很喜歡，如果要學習 LINQ 的朋友，建議對於 C# 3.0 語言的新功能先了解一下。&lt;/p&gt;  &lt;p&gt;筆者使用的環境：Windows 2008 RC0 English + Visual Studio 2008 &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6777555" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>MSDN 雜誌 2007 年 12 月號 - 編輯的話</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/04/msdn-2007-12.aspx</link><pubDate>Tue, 04 Dec 2007 11:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6650160</guid><dc:creator>jchiou</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6650160.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6650160</wfw:commentRss><description>&lt;p&gt;&lt;font size="2"&gt;轉載自：&lt;/font&gt;&lt;a title="http://msdn.microsoft.com/msdnmag/issues/07/12/EditorsNote/default.aspx?loc=zx" href="http://msdn.microsoft.com/msdnmag/issues/07/12/EditorsNote/default.aspx?loc=zx"&gt;&lt;font size="2"&gt;http://msdn.microsoft.com/msdnmag/issues/07/12/EditorsNote/default.aspx?loc=zx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;當我在撰寫本文時，&amp;#160; 我正在從西雅圖飛往美國東岸的班機上。我將在紐約的辦公室待幾天，然後就要前往德州參加會議。接著，我就要回到 Redmond 開幾個會，最後還要前往巴塞隆納參加 Tech&amp;#8226;Ed EMEA。這麼多的會議只能代表一件事- 2007 年即將結束！怎麼會那麼快就到年底了？在這個時候，我們應當回顧一下身為開發人員在這一年來的成長，以及 2008 的趨勢。&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;雖然 2007 是推出各種嶄新技術的一年，但是形成的主軸有兩個：AJAX 以及 Microsoft .NET Framework 3.0。AJAX 的 ASP.NET AJAX Extensions 成為一等一的 Web 應用程式開發平台。此延伸程式庫同時涵蓋用戶端和伺服器的範圍，且能夠抽象化在瀏覽器中執行之 JavaScript 程式碼與在應用程式伺服器上執行之商務邏輯之間的互動。此外，該程式庫也建立了指令碼行為與現有控制項的新動態關聯機制，並且提供了用戶端和伺服器上的當地語系化功能&amp;#8230;等等。&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;.NET Framework 3.0 推出了三項技術，這些技術已開始全面引發應用程式架構的轉變。首先是 Windows Presentation Foundation (WPF)，這完全顛覆了傳統的訊息幫浦 (Message Pump)，那方方正正的 Win32 架構，藉由利用圖形卡的嶄新技術並提供 Windows 開發人員宣告式、以容器為基礎的使用者介面項目撰寫模式，使他們也能掌握以往只有 Web 應用程式開發人員獨享的彈性和優勢。再來是 Windows Communication Foundation (WCF)，這將所有建立分散式應用程式的方法，全部都整合到單一抽象層。最後則是 Windows Workflow Foundation (Windows WF)，這新增了宣告式工作流程模型語言和執行引擎，在這之前，如此的功能僅能以額外的應用程式提供，而非以平台的服務提供。&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;當您考慮到 .NET Framework 3.0 和 AJAX 的影響有多麼深遠，身為開發人員一定會感受到壓力。如 Windows WF 和 WCF 對於傳統應用程式架構模式的影響 (例如功能豐富的領域模式) 絕對不容忽視。舉例而言，以後是否要放棄所有的物件導向 (OO) 作法，並且將類別階層一對一對地分割為可以在遠端服務之間輕易傳遞的邏輯服務類別和資料語彙基元類別？單元測試之長時間執行的工作流程又應該如何進行，才是最佳作法？何時應該使用 AJAX 指令碼服務方法而非部分呈現？&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;或許您覺得當下的這些問題已經夠嗆，但是 2008 年很可能還會進一步加快轉變的趨勢。自從 MIX 2007，Silverlight 的定位就是要轟動武林，並且突破以往在 Web 應用程式開發環境中未能實現的境界，提供功能更豐富的以瀏覽器為基礎的使用者體驗。此外，隨著 Visual Studio 2008 中的 LINQ 以及 ADO.NET Entity Framework 的推出 (後者在 Visual Studio 推出不久之後即問世)，資料存取的架構也將完全顛覆以往的思考模式。在上述嶄新平台技術一一推出的同時，2007 Office System 也不甘示弱，其中包括在應用程式層執行的 SharePoint 技術也持續向上提升，以提供高度整合、功能強大的商務應用程式。&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;如果您也像我一樣，想著到底何時才能鬆一口氣，答案是恐怕還要再憋久一點。因為就像我的出差行程一樣，短期內應該沒有任何休閒時間。但是請您也別擔憂，因為 &lt;i&gt;&lt;i&gt;MSDN Magazine&lt;/i&gt;&lt;/i&gt; 會一如往常地使出渾身解數，以協助您過濾雜訊、抓取重點，使您成為頂尖開發人員，或許還可以為您的科技生活增添一點娛樂效果喔！&amp;#8212;Howard&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6650160" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/SharePoint+Server+2007/default.aspx">SharePoint Server 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Office+2007/default.aspx">Office 2007</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Windows+2008/default.aspx">Windows 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>C# 3.0 - 新功能 - Collection Initializers</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/04/c-3-0-collection-initializers.aspx</link><pubDate>Tue, 04 Dec 2007 06:11:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6648674</guid><dc:creator>jchiou</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6648674.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6648674</wfw:commentRss><description>&lt;p&gt;Collection Initializers 即是透過前述的 Object Initializers，讓我們可以直接對物件做一或多次初始化動作。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static List&amp;lt;Customer&amp;gt; CreateCustomers()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new List&amp;lt;Customer&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(1) { Name = &amp;quot;波羅實業&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台北市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(2) { Name = &amp;quot;湯姆科技&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台中市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(3) { Name = &amp;quot;墩墩數位&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;高雄市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(4) { Name = &amp;quot;摩利光電&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;新竹市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(5) { Name = &amp;quot;瑞之路邊攤&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;花蓮市&amp;quot; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;完整範例：&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;using System;    &lt;br /&gt;using System.Collections.Generic;     &lt;br /&gt;using System.Linq;     &lt;br /&gt;using System.Text; &lt;/p&gt;  &lt;p&gt;namespace NewLanguageFeatures    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class Customer     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int CustomerId { get; private set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Name { get; set; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string City { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Customer(int Id)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CustomerId = Id;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public override string ToString()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Name + &amp;quot;\t&amp;quot; + City + &amp;quot;\t&amp;quot; + CustomerId;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; class Program    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;Customer&amp;gt; customers = CreateCustomers(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Customers:\n&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (Customer c in customers)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(c);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static List&amp;lt;Customer&amp;gt; CreateCustomers()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new List&amp;lt;Customer&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(1) { Name = &amp;quot;波羅實業&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台北市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(2) { Name = &amp;quot;湯姆科技&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;台中市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(3) { Name = &amp;quot;墩墩數位&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;高雄市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(4) { Name = &amp;quot;摩利光電&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;新竹市&amp;quot; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new Customer(5) { Name = &amp;quot;瑞之路邊攤&amp;quot;,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; City = &amp;quot;花蓮市&amp;quot; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;em&gt;執行結果：&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Customers: &lt;/p&gt;  &lt;p&gt;波羅實業&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 台北市&amp;#160; 1    &lt;br /&gt;湯姆科技&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 台中市&amp;#160; 2     &lt;br /&gt;墩墩數位&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 高雄市&amp;#160; 3     &lt;br /&gt;摩利光電&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 新竹市&amp;#160; 4     &lt;br /&gt;瑞之路邊攤&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 花蓮市&amp;#160; 5     &lt;br /&gt;Press any key to continue . . .&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;筆者使用的環境：Windows 2008 RC0 English + Visual Studio 2008 &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6648674" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>C# 3.0 - 新功能 - Object Initializers</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/04/c-3-0-object-initializers.aspx</link><pubDate>Tue, 04 Dec 2007 05:40:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6648568</guid><dc:creator>jchiou</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6648568.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6648568</wfw:commentRss><description>&lt;p&gt;C# 3.0 為了簡化物件的初始化，可以直接在建構子後面指定屬性的值。&lt;/p&gt;  &lt;p&gt;以程式來說明會更清楚：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;// 原來程式的寫法為：&lt;/p&gt;    &lt;p&gt;Customer c = new Customer(1);     &lt;br /&gt;c.Name = &amp;quot;台灣微軟&amp;quot;;      &lt;br /&gt;c.City = &amp;quot;台北市&amp;quot;;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;// Object initializers 可以將程式改寫為：     &lt;br /&gt;&lt;strong&gt;Customer c = new Customer(2) { Name = &amp;quot;台灣微軟&amp;quot;, City = &amp;quot;台北市&amp;quot; };&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;兩個程式碼比較後，後者真的簡潔許多。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;完整的程式碼範例如下：&lt;/p&gt;  &lt;p&gt;using System;   &lt;br /&gt;using System.Collections.Generic;    &lt;br /&gt;using System.Linq;    &lt;br /&gt;using System.Text; &lt;/p&gt;  &lt;p&gt;namespace NewLanguageFeatures   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class Customer    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int CustomerId { get; private set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Name { get; set; }   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string City { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Customer(int Id)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CustomerId = Id;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public override string ToString()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Name + &amp;quot;\t&amp;quot; + City + &amp;quot;\t&amp;quot; + CustomerId;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; class Program   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Customer c = new Customer(1);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //c.Name = &amp;quot;台灣微軟&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //c.City = &amp;quot;台北市&amp;quot;; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Object initializers 可以將程式改寫為：   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Customer c = new Customer(2) { Name = &amp;quot;台灣微軟&amp;quot;, City = &amp;quot;台北市&amp;quot; }; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(c);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;執行結果：&lt;/p&gt;  &lt;p&gt;台灣微軟&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 台北市&amp;#160; 2   &lt;br /&gt;Press any key to continue . . .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;筆者使用的環境：Windows 2008 RC0 English + Visual Studio 2008 &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6648568" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>C# 3.0 - 新功能 - Automatic properties</title><link>http://blogs.msdn.com/jchiou/archive/2007/12/04/c-3-0-automatic-properties.aspx</link><pubDate>Tue, 04 Dec 2007 05:27:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6648513</guid><dc:creator>jchiou</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jchiou/comments/6648513.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jchiou/commentrss.aspx?PostID=6648513</wfw:commentRss><description>&lt;p&gt;&lt;font face="Arial" size="2"&gt;C# 3.0 又新增許多令人激賞的功能，今天先看一下 Automatic properties&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;大家先想一下之前要宣告一個 property 要如何做？就像下方的程式碼：&lt;/font&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Arial" size="2"&gt;private string name; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;public string Name &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;{ &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;get { return name; } &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;set { name = value; } &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;pre&gt;&lt;font face="Arial" size="2"&gt;在 C# 3.0 的寫法可以直接寫為：&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font face="Arial" size="2"&gt;&lt;strong&gt;public string Name { get; set; }&lt;/strong&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;是不是又加簡潔了！&lt;/pre&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;完整的範例如下：&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;using System; 
    &lt;br /&gt;using System.Collections.Generic; 

    &lt;br /&gt;using System.Linq; 

    &lt;br /&gt;using System.Text; &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;namespace NewLanguageFeatures 
    &lt;br /&gt;{ 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class Customer 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int CustomerId { get; private set; } &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Name { get; set; } 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string City { get; set; } &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Customer(int Id) 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CustomerId = Id; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public override string ToString() 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Name + &amp;quot;\t&amp;quot; + City + &amp;quot;\t&amp;quot; + CustomerId; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&amp;#160;&amp;#160; class Program 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args) 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Customer c = new Customer(1); 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c.Name = &amp;quot;台灣微軟&amp;quot;; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c.City = &amp;quot;台北市&amp;quot;; &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(c); 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } 

    &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jchiou/WindowsLiveWriter/C3.0Automaticproperties_F9F6/image_2.png"&gt;&lt;font face="Arial" color="#333333" size="2"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="69" alt="image" src="http://blogs.msdn.com/blogfiles/jchiou/WindowsLiveWriter/C3.0Automaticproperties_F9F6/image_thumb.png" width="244" border="0" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Arial" size="2"&gt;筆者使用的環境：Windows 2008 RC0 English + Visual Studio 2008 &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6648513" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jchiou/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/jchiou/archive/tags/C_2300_/default.aspx">C#</category></item></channel></rss>