<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>sholfen-.Net 技術</title>
<link>http://blog.roodo.com/sholfen/archives/cat_304448.html</link>
<description></description>
<language>zh-tw</language>
<generator>Roodo Blog System</generator>
<copyright>All Rights Reserved</copyright>
<atom:link href="http://blog.roodo.com/sholfen/archives/cat_304448.xml" rel="self" type="application/rss+xml" />
<item>
	<title>ObjectDataSource與GridView</title>
	<description><![CDATA[
	 前一篇文章提到，可以將DataTable直接丟給GridView去顯示抓回來的資料。但這樣會有個問題，由於GridView是在runtime時才知道有哪些欄位，所以欄位的顯示名稱預設是抓資料表上的欄位名稱。假如想更改顯示名稱，可以用下列的程式碼去做。mysqlDataSet.boardtableDataTable dataTable = adapter.GetData();             dataTable.Columns[0].ColumnName = &quot;識別碼&quot;;             dataTable.Columns[1].ColumnName = &quot;暱稱&quot;;             dataTable.Columns[2].ColumnName = &quot;內容&quot;;這樣顯示出來就不會只是單純的資料表欄位名稱，但還是會有一個問題，這些動作其實不應該用程式去控制，沒必要而且也不方便。這種情況就可以用ObjectDatasource去解決。ObjectDataSource其實可以想做是Proxy Pattern，它負責把資料送給GridView，但GridView不會知道這些資料是怎麼來的，因為那是ObjectDataSource的責任，它只要負責顯示出來就好。現在，就開始動手做吧！
	]]>
	</description>
	<content:encoded><![CDATA[
	<a href="http://blog.roodo.com/sholfen/798ce04d.png"><img style="border: 0px" src="http://blog.roodo.com/sholfen/94c57a81.png" border="0" alt="2008-07-17_154014" width="244" height="41" /></a> <br />前一篇文章提到，可以將DataTable直接丟給GridView去顯示抓回來的資料。但這樣會有個問題，由於GridView是在runtime時才知道有哪些欄位，所以欄位的顯示名稱預設是抓資料表上的欄位名稱。假如想更改顯示名稱，可以用下列的程式碼去做。<pre class="csharpcode">mysqlDataSet.boardtableDataTable dataTable = adapter.GetData();             <br />dataTable.Columns[0].ColumnName = <span class="str">&quot;識別碼&quot;</span>;             <br />dataTable.Columns[1].ColumnName = <span class="str">&quot;暱稱&quot;</span>;             <br />dataTable.Columns[2].ColumnName = <span class="str">&quot;內容&quot;</span>;</pre>這樣顯示出來就不會只是單純的資料表欄位名稱，但還是會有一個問題，這些動作其實不應該用程式去控制，沒必要而且也不方便。這種情況就可以用ObjectDatasource去解決。ObjectDataSource其實可以想做是Proxy Pattern，它負責把資料送給GridView，但GridView不會知道這些資料是怎麼來的，因為那是ObjectDataSource的責任，它只要負責顯示出來就好。現在，就開始動手做吧！<br /><a href="http://blog.roodo.com/sholfen/2c509c05.png"><img style="border: 0px" src="http://blog.roodo.com/sholfen/894f2058.png" border="0" alt="2008-07-17_153914" width="325" height="148" /></a>		<a href="http://blog.roodo.com/sholfen/archives/6519597.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/6519597.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/6519597.html</guid>
	<category>.Net 技術</category>
	<pubDate>Thu, 17 Jul 2008 17:11:55 +0800</pubDate>
</item>
<item>
	<title>DataSet與MySQL</title>
	<description><![CDATA[
	VS 2008跟SQL Server可以說是整合的天衣無鏠，但現實的情況往往是程式得跟MySQL或是其它家的資料庫做溝通，幸好比較大的廠商都會提供Provider。例如MySQL，這篇文章示範如何利用DataSet上的功能去對MySQL做新增、查詢。
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>VS 2008跟SQL Server可以說是整合的天衣無鏠，但現實的情況往往是程式得跟MySQL或是其它家的資料庫做溝通，幸好比較大的廠商都會提供Provider。例如MySQL，這篇文章示範如何利用DataSet上的功能去對MySQL做新增、查詢。</p>		<a href="http://blog.roodo.com/sholfen/archives/6515425.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/6515425.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/6515425.html</guid>
	<category>.Net 技術</category>
	<pubDate>Wed, 16 Jul 2008 17:20:37 +0800</pubDate>
</item>
<item>
	<title>LINQ to SQL上的bug</title>
	<description><![CDATA[
	昨天在ptt上看到這篇「linq未實作的功能」，一開始並不清楚這篇文章的意思，心想文章提到所謂「在System.DateTime 中， ToShortDateTime 都是未實現(作)的」這句話究竟是啥意思。後來才想到之前祭司在研討會有提到，LINQ to SQL的語法，在編譯時會自動轉成SQL語法。也就是說假如呼叫的方法剛好沒有對應的SQL語法，那程式就會有錯誤。之後我就自己寫了支程式來測試一下。
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>昨天在ptt上看到這篇「<a href="http://kenshinnn.blogspot.com/2008/07/linq.html"><font color="#ff0000">linq未實作的功能</font></a>」，一開始並不清楚這篇文章的意思，心想文章提到所謂「在System.DateTime 中， ToShortDateTime 都是未實現(作)的」這句話究竟是啥意思。後來才想到之前祭司在研討會有提到，LINQ to SQL的語法，在編譯時會自動轉成SQL語法。也就是說假如呼叫的方法剛好沒有對應的SQL語法，那程式就會有錯誤。之後我就自己寫了支程式來測試一下。</p>		<a href="http://blog.roodo.com/sholfen/archives/6413275.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/6413275.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/6413275.html</guid>
	<category>.Net 技術</category>
	<pubDate>Tue, 08 Jul 2008 13:28:04 +0800</pubDate>
</item>
<item>
	<title>使用LINQ.Flickr搜尋相片</title>
	<description><![CDATA[
	元件的出處網址：http://www.codeplex.com/LINQFlickrFlickr的API key申請：http://flickr.com/services/api/keys/apply/API key的管理頁面：http://flickr.com/services/api/keys/
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>元件的出處網址：<a href="http://www.codeplex.com/LINQFlickr" title="http://www.codeplex.com/LINQFlickr"></a><a href="http://www.codeplex.com/LINQFlickr"><font color="#ff0000">http://www.codeplex.com/LINQFlickr</font></a><br />Flickr的API key申請：<a href="http://flickr.com/services/api/keys/apply/" title="http://flickr.com/services/api/keys/apply/"></a><a href="http://flickr.com/services/api/keys/apply/API"><font color="#ff0000">http://flickr.com/services/api/keys/apply/</font></a><br />API key的管理頁面：<a href="http://flickr.com/services/api/keys/" title="http://flickr.com/services/api/keys/"><font color="#ff0000">http://flickr.com/services/api/keys/</font></a></p>		<a href="http://blog.roodo.com/sholfen/archives/6382027.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/6382027.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/6382027.html</guid>
	<category>.Net 技術</category>
	<pubDate>Mon, 07 Jul 2008 13:53:58 +0800</pubDate>
</item>
<item>
	<title>VB 9的暱名型別陣列</title>
	<description><![CDATA[
	昨天在聖殿祭司的部落格看了這篇文章後，對於VB在暱名型別上的實作非常疑問，於是寫了些程式碼來測試一下。  
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>昨天在聖殿祭司的部落格看了<a href="http://blog.sina.com.tw/dotnet/article.php?pbgid=4907&amp;entryid=578422"><font color="#ff0000">這篇文章</font></a>後，對於VB在暱名型別上的實作非常疑問，於是寫了些程式碼來測試一下。 </p><pre class="csharpcode"> </pre>		<a href="http://blog.roodo.com/sholfen/archives/6356073.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/6356073.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/6356073.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sat, 05 Jul 2008 12:47:34 +0800</pubDate>
</item>
<item>
	<title>[C#3.0]LINQ 的發展及其對 C# 設計的影響</title>
	<description><![CDATA[
	原文網址http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/default.aspx?loc=zx以下為自己的讀後心得。
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>原文網址</p><p><a href="http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/default.aspx?loc=zx">http://msdn.microsoft.com/msdnmag/issues/07/06/CSharp30/default.aspx?loc=zx</a></p><p>以下為自己的讀後心得。</p>		<a href="http://blog.roodo.com/sholfen/archives/3366831.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/3366831.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/3366831.html</guid>
	<category>.Net 技術</category>
	<pubDate>Tue, 29 May 2007 20:23:54 +0800</pubDate>
</item>
<item>
	<title>WPF/E的正式名稱：Silverlight</title>
	<description><![CDATA[
	代號WPF/E的新一代web展現層技術，已經有了正式名稱：Silverlight。 
	]]>
	</description>
	<content:encoded><![CDATA[
	代號WPF/E的新一代web展現層技術，已經有了正式名稱：Silverlight。 		<a href="http://blog.roodo.com/sholfen/archives/3016317.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/3016317.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/3016317.html</guid>
	<category>.Net 技術</category>
	<pubDate>Mon, 16 Apr 2007 18:29:02 +0800</pubDate>
</item>
<item>
	<title>無名備份王閱讀器改版</title>
	<description><![CDATA[
	經過一個晚上的修改，總算勉強寫出可以把XML格式轉成MT的功能，雖然已經有大神寫出一樣的程式，不過目前圖片的連結問題還是沒辦法解決，所以還是自己寫一個出來用，看以後有沒有辦法寫出這個功能。
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>經過一個晚上的修改，總算勉強寫出可以把XML格式轉成MT的功能，雖然已經有大神寫出一樣的程式，不過目前圖片的連結問題還是沒辦法解決，所以還是自己寫一個出來用，看以後有沒有辦法寫出這個功能。</p>		<a href="http://blog.roodo.com/sholfen/archives/2578145.html">(繼續閱讀...)</a>;
		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578145.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578145.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sun, 17 Dec 2006 16:32:00 +0800</pubDate>
</item>
<item>
	<title>WPF簡介</title>
	<description><![CDATA[
	明年微軟的下一代作業系統就要上市了，對於程式技術有狂熱的同好們！一起來迎接全新的視覺化技術：Windows Presentation FoundationWPF簡介
	]]>
	</description>
	<content:encoded><![CDATA[
	明年微軟的下一代作業系統就要上市了，對於程式技術有狂熱的同好們！一起來迎接全新的視覺化技術：Windows Presentation Foundation<br /><br /><a href="http://www.microsoft.com/taiwan/msdn/library/2006/Oct-2006/introducingwpf.htm">WPF簡介</a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578142.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578142.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sun, 19 Nov 2006 23:53:00 +0800</pubDate>
</item>
<item>
	<title>無名備份王閱讀器</title>
	<description><![CDATA[
	最近發現無名網誌可以備份，備份檔是個XML，但是不能直接閱讀，所以就順手寫了個可以瀏覽文章的程式。執行之前請確定電腦已安裝.NET Framework 2.0程式下載
	]]>
	</description>
	<content:encoded><![CDATA[
	最近發現無名網誌可以備份，備份檔是個XML，但是不能直接閱讀，所以就順手寫了個可以瀏覽文章的程式。<br /><br />執行之前請確定電腦已安裝.NET Framework 2.0<br /><br /><a href="http://www.dyu.edu.tw/~f9106007/ReadWretch.rar">程式下載</a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578122.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578122.html</guid>
	<category>.Net 技術</category>
	<pubDate>Wed, 20 Sep 2006 01:00:00 +0800</pubDate>
</item>
<item>
	<title>MSN 表情符號備份程式初版已發佈</title>
	<description><![CDATA[
	第一版的程式算是完成了，目前只有備份功能，匯入功能比較復雜.....程式下載
	]]>
	</description>
	<content:encoded><![CDATA[
	第一版的程式算是完成了，目前只有備份功能，匯入功能比較復雜.....<br /><a href="http://www.dyu.edu.tw/~f9106007/SharpMSN.rar">程式下載</a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578117.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578117.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sat, 09 Sep 2006 00:29:00 +0800</pubDate>
</item>
<item>
	<title>MSN 表情符號備份程式初版</title>
	<description><![CDATA[
	弄了幾天，總算有個樣子了...大概再一段時間就可以寫好了吧....stO&nbsp;
	]]>
	</description>
	<content:encoded><![CDATA[
	弄了幾天，總算有個樣子了...<br />大概再一段時間就可以寫好了吧....stO<br /><br /><img src="http://pic24.pic.wretch.cc/photos/33/s/sholfen/2/1134667761.jpg" alt="" width="525" height="428" />&nbsp;		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578116.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578116.html</guid>
	<category>.Net 技術</category>
	<pubDate>Thu, 07 Sep 2006 22:51:00 +0800</pubDate>
</item>
<item>
	<title>C# 2.0的新特色．泛型與匿名函數</title>
	<description><![CDATA[
	在C# 2.0中，加入泛型的功能。以往在1.X版中，使用堆疊、佇列等資料結構，只能用object型態，並沒辦法把型態固定下來，使得資料中摻雜一種以上的資料型態。一不注意，程式就容易發生Runtime的錯誤。幸好在2.0中，這些的問題獲得改善。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{&nbsp;&nbsp;&nbsp; delegate void Function(int x);&nbsp;&nbsp;&nbsp; class Program&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void myFunction(Function f)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f(6);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Main(string[] args)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(&quot;以下是泛型的執行結果&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack&lt;int&gt; myStack = new Stack&lt;int&gt;();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 10; i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myStack.Push(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (int i in myStack)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(&quot;以下是匿名函數的用法&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(delegate(int x){Console.WriteLine(&quot;印出：&quot; + x);});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(delegate(int x) { Console.WriteLine(&quot;印出：&quot; + (x + 2)); });&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Function a = new Function(delegate(int x) { Console.WriteLine(&quot;第一個&quot;); });&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += delegate(int x) { Console.WriteLine(&quot;第二個&quot;); };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += delegate(int x) { Console.WriteLine(&quot;第三個，並印出X：&quot;+x.ToString()); };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a(3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; }}從上面的程式碼，我們看到：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack&lt;int&gt; myStack = new Stack&lt;int&gt;();在1.X版中，是沒辦法用&lt;&gt;指定型態，在2.0中，我們可以在一些的常見資料結構中指定型態，減少Runtime上的錯誤。上例中，如果加入像&quot;myStack.Push(6.11)&quot;這一行的程式碼，編譯器就會產生編譯錯誤，這樣的好處就在程式的bug在程式人員這邊就可以發現，而不是到了測試人員甚至是使者用那邊才被發現。另外在2.0版中，還加入了匿名函數的功能，也就是能將程式碼當作參數。&nbsp;&nbsp;&nbsp; delegate void Function(int x);&nbsp;&nbsp;&nbsp; class Program&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void myFunction(Function f)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f(6);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; }........(略)假設在一個函式中，想將部份的功能交給別人去作，可以使用delegate型態。上面的Function函數將回傳設為void，參數為一個int的x。這樣的作法，在於只需將規格訂好，剩下內部的實作，就交給其它應該負責的人去作就好了。而在myFunction中，使用到一次f參數，f內部怎麼作，不需要知道，只要在使用時，記得將程式碼加進去就好了。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(delegate(int x){Console.WriteLine(&quot;印出：&quot; + x);});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(delegate(int x) { Console.WriteLine(&quot;印出：&quot; + (x + 2)); });上面的程式碼，第一個會將變數x印出，第二個則是將x加2之後再印出。除此之外，匿名函數還有另一種用法：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Function a = new Function(delegate(int x) { Console.WriteLine(&quot;第一個&quot;); });&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += delegate(int x) { Console.WriteLine(&quot;第二個&quot;); };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += delegate(int x) { Console.WriteLine(&quot;第三個，並印出X：&quot;+x.ToString()); };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a(3);a變數在宣告時，已經加入了一行程式碼，或者說是一個函數，之後再加入兩個函數。執行a的時候，是加入幾個函數就執行幾個函數，並不會有衝突。&nbsp;C# 2.0另外兩個新功能，在下期的文章會提到，另外也會補充泛型與匿名函數的內容。
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>在C# 2.0中，加入泛型的功能。以往在1.X版中，使用堆疊、佇列等資料結構，只能用object型態，並沒辦法把型態固定下來，使得資料中摻雜一種以上的資料型態。一不注意，程式就容易發生Runtime的錯誤。幸好在2.0中，這些的問題獲得改善。<br /><br /><font color="#0000ff">using</font> System;<br /><font color="#0000ff">using</font> System.Collections.Generic;<br /><font color="#0000ff">using</font> System.Text;</p><p><font color="#0000ff">namespace</font> ConsoleApplication1<br />{<br />&nbsp;&nbsp;&nbsp; <font color="#0000ff">delegate void</font><font color="#33cccc"> </font><font color="#008080">Function</font>(<font color="#0000ff">int </font>x);<br />&nbsp;&nbsp;&nbsp; <font color="#0000ff">class</font> <font color="#008080">Program</font><br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">static void</font> <font color="#008080">myFunction</font>(<font color="#008080">Function</font> f)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f(6);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"> static void</font> Main(string[] args)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;以下是泛型的執行結果&quot;</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#008080">Stack</font>&lt;<font color="#0000ff">int</font>&gt; myStack = <font color="#0000ff">new </font><font color="#008080">Stack</font>&lt;<font color="#0000ff">int</font>&gt;();</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">for</font> (<font color="#0000ff">int </font>i = 0; i &lt; 10; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myStack.Push(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"> foreach</font> (<font color="#0000ff">int</font> i <font color="#0000ff">in</font> myStack)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#008080">Console</font>.WriteLine(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;以下是匿名函數的用法&quot;</font>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(<font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x){<font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;印出：&quot;</font> + x);});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(<font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;印出：&quot;</font> + (x + 2)); });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#008080">Function</font> a = <font color="#0000ff">new</font> <font color="#008080">Function</font>(<font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x) { <font color="#0000ff">Console</font>.WriteLine(<font color="#993300">&quot;第一個&quot;</font>); });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += <font color="#0000ff">delegate</font>(<font color="#0000ff">int </font>x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;第二個&quot;</font>); };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += <font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;第三個，並印出X：&quot;</font>+x.ToString()); };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br />從上面的程式碼，我們看到：<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack&lt;<font color="#0000ff">int</font>&gt; myStack = <font color="#0000ff">new </font>Stack&lt;<font color="#0000ff">int</font>&gt;();<br /><br />在1.X版中，是沒辦法用&lt;&gt;指定型態，在2.0中，我們可以在一些的常見資料結構中指定型態，減少Runtime上的錯誤。上例中，如果加入像&quot;myStack.Push(6.11)&quot;這一行的程式碼，編譯器就會產生編譯錯誤，這樣的好處就在程式的bug在程式人員這邊就可以發現，而不是到了測試人員甚至是使者用那邊才被發現。<br /><br />另外在2.0版中，還加入了匿名函數的功能，也就是能將程式碼當作參數。<br /><br />&nbsp;&nbsp;&nbsp; <font color="#0000ff">delegate void</font> <font color="#008080">Function</font>(int x);<br />&nbsp;&nbsp;&nbsp; <font color="#0000ff">class</font> <font color="#008080">Program</font><br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">static void</font> <font color="#008080">myFunction</font>(<font color="#008080">Function</font> f)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f(6);&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }........(略)<br /><br />假設在一個函式中，想將部份的功能交給別人去作，可以使用delegate型態。上面的Function函數將回傳設為void，參數為一個int的x。這樣的作法，在於只需將規格訂好，剩下內部的實作，就交給其它應該負責的人去作就好了。而在myFunction中，使用到一次f參數，f內部怎麼作，不需要知道，只要在使用時，記得將程式碼加進去就好了。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(<font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x){<font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;印出：&quot; </font>+ x);});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFunction(<font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;印出：&quot;</font> + (x + 2)); });<br /><br />上面的程式碼，第一個會將變數x印出，第二個則是將x加2之後再印出。除此之外，匿名函數還有另一種用法：<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#008080">Function</font> a = <font color="#0000ff">new</font> <font color="#008080">Function</font>(<font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;第一個&quot;</font>); });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += <font color="#0000ff">delegate</font>(<font color="#0000ff">int </font>x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;第二個&quot;</font>); };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a += <font color="#0000ff">delegate</font>(<font color="#0000ff">int</font> x) { <font color="#008080">Console</font>.WriteLine(<font color="#993300">&quot;第三個，並印出X：&quot;</font>+x.ToString()); };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a(3);<br /><br />a變數在宣告時，已經加入了一行程式碼，或者說是一個函數，之後再加入兩個函數。執行a的時候，是加入幾個函數就執行幾個函數，並不會有衝突。&nbsp;<br /><br />C# 2.0另外兩個新功能，在下期的文章會提到，另外也會補充泛型與匿名函數的內容。</p>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578114.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578114.html</guid>
	<category>.Net 技術</category>
	<pubDate>Wed, 30 Aug 2006 17:13:00 +0800</pubDate>
</item>
<item>
	<title>[新聞]入門版 XNA 開發套件釋出 提供玩家開發 Xbox 360 遊戲</title>
	<description><![CDATA[
	美國微軟於 8 月 13 日發表針對業餘創作者所設計的遊戲開發套件「XNA Game Studio Express」，提供沒有專門開發器材的一般 PC Windows XP 使用者開發跨 Xbox 360 與 PC 平台遊戲的管道。.....more微軟想的這點子還不錯，只是不知道開發的難易度如何，如果可以像日本的RPG Maker那樣容易上手，說不定真的會掀起一股創作風潮。但是XNA這一套開發工具需要一些程式背景，在北美的影響會如何，就繼續觀察下去吧。
	]]>
	</description>
	<content:encoded><![CDATA[
	<font color="#3366ff">美國微軟於 8 月 13 日發表針對業餘創作者所設計的遊戲開發套件「XNA Game Studio Express」，提供沒有專門開發器材的一般 PC Windows XP 使用者開發跨 Xbox 360 與 PC 平台遊戲的管道。.....</font><a href="http://gnn.gamer.com.tw/9/24339.html"><font color="#3366ff">more</font></a><br /><br />微軟想的這點子還不錯，只是不知道開發的難易度如何，如果可以像日本的RPG Maker那樣容易上手，說不定真的會掀起一股創作風潮。但是XNA這一套開發工具需要一些程式背景，在北美的影響會如何，就繼續觀察下去吧。		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578108.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578108.html</guid>
	<category>.Net 技術</category>
	<pubDate>Wed, 16 Aug 2006 01:31:00 +0800</pubDate>
</item>
<item>
	<title>好書一本</title>
	<description><![CDATA[
	想學ASP.NET的人有福了，.NET高手聖殿祭司又出書了！想買的人請到以下網址：http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9789861810249&amp;sid=31744作者網址：http://blog.sina.com.tw/4907/
	]]>
	</description>
	<content:encoded><![CDATA[
	<img src="http://pic24.pic.wretch.cc/photos/33/s/sholfen/2/1134667760.jpg" alt="" /><br /><br />想學ASP.NET的人有福了，.NET高手聖殿祭司又出書了！想買的人請到以下網址：<br /><a href="http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9789861810249&amp;sid=31744">http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9789861810249&amp;sid=31744</a><br /><br />作者網址：<br /><a href="http://blog.sina.com.tw/4907/">http://blog.sina.com.tw/4907/</a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578107.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578107.html</guid>
	<category>.Net 技術</category>
	<pubDate>Tue, 15 Aug 2006 19:29:00 +0800</pubDate>
</item>
<item>
	<title>類似Windows 工作管理員的小程式</title>
	<description><![CDATA[
	考完試無聊寫的，有些功能還沒寫好，有興趣的人看一下吧。下載位址
	]]>
	</description>
	<content:encoded><![CDATA[
	考完試無聊寫的，有些功能還沒寫好，有興趣的人看一下吧。<br /><a href="http://www.dyu.edu.tw/~f9106007/viewprocess.rar"><font color="#0000ff">下載位址</font></a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578027.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578027.html</guid>
	<category>.Net 技術</category>
	<pubDate>Thu, 12 Jan 2006 21:20:00 +0800</pubDate>
</item>
<item>
	<title>[轉載]與知名出版社編輯的對話</title>
	<description><![CDATA[
	一篇訴說電腦圖書出版的無奈與心酸。文章連結其實我一直在想，為什麼台灣的電腦圖書會搞成這個樣子，我想大概是民族性問題吧。每個人都只想求快，不肯腳踏實地。學習任何一件事不可能會有速成的方法，如果有速成，早就有人拿來發大財了。 
	]]>
	</description>
	<content:encoded><![CDATA[
	一篇訴說電腦圖書出版的無奈與心酸。<br /><a href="http://blog.sina.com.tw/4907/article.php?pbgid=4907&amp;entryid=11433"><font color="#0000ff">文章連結</font></a><br /><br />其實我一直在想，為什麼台灣的電腦圖書會搞成這個樣子，我想大概是民族性問題吧。每個人都只想求快，不肯腳踏實地。學習任何一件事不可能會有速成的方法，如果有速成，早就有人拿來發大財了。 		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578026.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578026.html</guid>
	<category>.Net 技術</category>
	<pubDate>Wed, 11 Jan 2006 21:45:00 +0800</pubDate>
</item>
<item>
	<title>SharpMP3 0.3.6.0版</title>
	<description><![CDATA[
	好懶得貼圖，說明文件有空再弄好了...XD
下載位址
	]]>
	</description>
	<content:encoded><![CDATA[
	好懶得貼圖，說明文件有空再弄好了...XD<br/><br />
<a href="http://sholfen.myweb.hinet.net/SharpMP3.rar">下載位址</a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578015.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578015.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sun, 25 Dec 2005 00:27:00 +0800</pubDate>
</item>
<item>
	<title>SharpMP3 改版預告</title>
	<description><![CDATA[
	新增功能如下：1.增加播放清單功能，功能與winamp類似2.加強播放音樂的功能3.批次修改的項目增加下一次改版目標：1.可以修改ID3v2的資料(目前只能修改IDv1)2.可將圖片加進MP3檔案裡
	]]>
	</description>
	<content:encoded><![CDATA[
	新增功能如下：<br />1.增加播放清單功能，功能與winamp類似<br />2.加強播放音樂的功能<br />3.批次修改的項目增加<br /><br />下一次改版目標：<br />1.可以修改ID3v2的資料(目前只能修改IDv1)<br />2.可將圖片加進MP3檔案裡		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578014.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578014.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sat, 24 Dec 2005 01:44:00 +0800</pubDate>
</item>
<item>
	<title>SharpMP3  0.3.5.0版</title>
	<description><![CDATA[
	新版本又放出來啦！這次多了播放功能~~~~下載位址
	]]>
	</description>
	<content:encoded><![CDATA[
	新版本又放出來啦！這次多了播放功能~~~~<br /><br /><a href="http://sholfen.myweb.hinet.net/SharpMP3.rar">下載位址</a>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578012.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578012.html</guid>
	<category>.Net 技術</category>
	<pubDate>Mon, 19 Dec 2005 13:04:00 +0800</pubDate>
</item>
<item>
	<title>SharpMP3</title>
	<description><![CDATA[
	現在MP3很方便，檔案小、音質不差，所以我的電腦裡放了很多首MP3。但是有一種情況常常會發生，就是在編輯MP3的資料時，得常常作一樣的事情，看看以下的圖：在演出與專輯那個欄位，如果是編輯同一張專輯，就得重覆編輯並輸入相同的資料。所以我就另外寫了個程式。SharpMp3是用微軟的C#語言開發，所以才取這樣的名稱。在進入主程式之後，選擇MP3的資料夾，之後程式會列出所有的MP3檔案，你可以一首一首的編輯資料，也可以利用批次功能來修改MP3的專輯以及演出者資料。下載位址
	]]>
	</description>
	<content:encoded><![CDATA[
	現在MP3很方便，檔案小、音質不差，所以我的電腦裡放了很多首MP3。但是有一種情況常常會發生，就是在編輯MP3的資料時，得常常作一樣的事情，看看以下的圖：在演出與專輯那個欄位，如果是編輯同一張專輯，就得重覆編輯並輸入相同的資料。所以我就另外寫了個程式。<br /><br /><img src="http://pic24.pic.wretch.cc/photos/33/s/sholfen/2/1134620807.jpg" alt="" /><br /><br />SharpMp3是用微軟的C#語言開發，所以才取這樣的名稱。在進入主程式之後，選擇MP3的資料夾，之後程式會列出所有的MP3檔案，你可以一首一首的編輯資料，也可以利用批次功能來修改MP3的專輯以及演出者資料。<br /><br /><a href="http://sholfen.myweb.hinet.net/SharpMP3.rar">下載位址</a><br /><br /><img src="http://pic24.pic.wretch.cc/photos/33/s/sholfen/2/1134621965.jpg" alt="" /><br /><br /><img src="http://pic24.pic.wretch.cc/photos/33/s/sholfen/2/1134667748.jpg" alt="" />		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2578011.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2578011.html</guid>
	<category>.Net 技術</category>
	<pubDate>Thu, 15 Dec 2005 12:44:00 +0800</pubDate>
</item>
<item>
	<title>讀取EXIF資訊的DotNet元件</title>
	<description><![CDATA[
	我自己寫的一個程式元件，文件及dll檔下載如下說明文件程式元件
	]]>
	</description>
	<content:encoded><![CDATA[
	<p>我自己寫的一個程式元件，文件及dll檔下載如下<br /><br /><a href="http://sholfen.myweb.hinet.net/EXIFread.htm">說明文件</a><br /><br /><a href="http://sholfen.myweb.hinet.net/Metadata_gdiplus.rar">程式元件</a></p>		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2577994.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2577994.html</guid>
	<category>.Net 技術</category>
	<pubDate>Sat, 12 Nov 2005 21:13:00 +0800</pubDate>
</item>
<item>
	<title>.Net 3.0版本出現？！</title>
	<description><![CDATA[
	LINQ ProjectC# 3.0網頁哇咧！Visual Studio 2005的正式版都還沒出來耶！現在就有3.0的版本了，微軟你真的想累死我們嗎？ 
	]]>
	</description>
	<content:encoded><![CDATA[
	<a href="http://msdn.microsoft.com/netframework/future/">LINQ Project</a><br /><br /><a href="http://msdn.microsoft.com/vcsharp/future/">C# 3.0網頁<br /></a><br />哇咧！Visual Studio 2005的正式版都還沒出來耶！現在就有3.0的版本了，微軟你真的想累死我們嗎？<img src="http://pic.wretch.cc/icon/blog/smiley/msn/confused_smile.gif" alt="" /> 		]]>
	</content:encoded>
	<link>http://blog.roodo.com/sholfen/archives/2577947.html</link>
	<guid>http://blog.roodo.com/sholfen/archives/2577947.html</guid>
	<category>.Net 技術</category>
	<pubDate>Mon, 19 Sep 2005 01:41:00 +0800</pubDate>
</item>
</channel>
</rss>