<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>蝈蝈俊.net - C# 3.0(.net 3.5)</title><link>http://blog.csdn.net/ghj1976/category/309587.aspx</link><description /><dc:language>zh-CN</dc:language><lastUpdateTime>Wed, 23 Jul 2008 16:38:00 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>ghj1976</dc:creator><title>ASP.net 页面被关闭后，服务器端是否仍然执行中？</title><link>http://blog.csdn.net/ghj1976/archive/2008/07/23/2697276.aspx</link><pubDate>Wed, 23 Jul 2008 15:45:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2008/07/23/2697276.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/2697276.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2008/07/23/2697276.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/2697276.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2697276</trackback:ping><description>问题：当一个正在执行中的ASPX页面执行到一半的时候，浏览器中你关闭了这个页面，服务器端对应的这个页面的代码仍然在执行么？  答案：除非你代码里面做了特殊判断，否则仍然正在执行。  &amp;#160;  注意点：  1、客户端显示页面的时候，后台已经执行完了的页面对象早已经不存在了。当然这时候谈不上服务器段执行不执行的问题了。  2、页面还没有返回，处于等待状态的时候。关闭ASPX页面，才会涉及到上面提到的服务器端仍然在执行的情况。  3、客户端关闭的时候根本不向服务器发送指令。  4、除非你代码里面做了特殊判断，这里的特殊判断指用 if(!Response.IsClientConnected) 来检测状态而用代码终止运行。  下面的简单代码就是演示关闭页面后，看是否仍然在执行？  你可以在这个页面打开后， 还没有返回任何信息的时候把这个页面关闭，然后看指定目录下是否有对应文件被创建并填写内容。          protected void Page_Load(object sender, EventArgs e)
        {
            StringBuilder&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/2697276.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>WPF中展开一个TreeView控件的所有树节点</title><link>http://blog.csdn.net/ghj1976/archive/2007/09/05/1773467.aspx</link><pubDate>Wed, 05 Sep 2007 16:34:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/09/05/1773467.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1773467.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/09/05/1773467.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1773467.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1773467</trackback:ping><description>       在 Windows Form 应用中，我们碰到需要展开一个TreeView 控件的所有树节点的时候很简单，微软已经替我们提供了ExpandAll 方法，我们只要简单的一行代码tv_QTree.ExpandAll();就可以了。即 System.Windows.Forms 命名空间的 TreeView.ExpandAll 方法 。       在WPF中，我们会发现，System.Windows.Controls.TreeView 中没有了 ExpandAll 方法。&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1773467.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>使用Grid来对WPF页面进行布局排版</title><link>http://blog.csdn.net/ghj1976/archive/2007/08/17/1748164.aspx</link><pubDate>Fri, 17 Aug 2007 13:46:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/08/17/1748164.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1748164.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/08/17/1748164.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1748164.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1748164</trackback:ping><description>我个人觉得，把一个窗体或者页面用表格拆分，然后我们在每个表格项中增加我们规划好的控件，这种布局方案在没有比较好的美术细胞下，比较容易做出一个至少不难看的页面布局。

基于以上的考虑，我觉得我们技术人员开发一些WPF窗体或者页面的时候，Grid控件应该是我们最常用到的。也应该是最应该掌握的控件。&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1748164.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>Orcas Team Suite 2007年6月份CTP的下载链接</title><link>http://blog.csdn.net/ghj1976/archive/2007/07/12/1686943.aspx</link><pubDate>Thu, 12 Jul 2007 17:25:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/07/12/1686943.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1686943.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/07/12/1686943.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1686943.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1686943</trackback:ping><description>你访问以下地址就可以下载Orcas Team Suite 2007年6月份CTP： http://download.microsoft.com/download/f/2/a/f2ac411f-acf9-42a7-a84f-3efc409bcd6b/VSTS_VPCJuneCTP.mht 这个版本可是比 Orcas Beta 1 更新的版本。&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1686943.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>LINQ 的查询执行何时是延迟执行，何时是立即执行，以及查询的复用</title><link>http://blog.csdn.net/ghj1976/archive/2007/07/03/1676894.aspx</link><pubDate>Tue, 03 Jul 2007 16:22:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/07/03/1676894.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1676894.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/07/03/1676894.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1676894.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1676894</trackback:ping><description>延迟执行的经典例子： 我们用&amp;nbsp;select ++i 就可以看到在foreach 时候，查询才被执行。 public static void Linq99(){&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };&amp;nbsp;&amp;nbsp;&amp;nbsp; int i = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; var q = from n in numbers select ++i;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var v in q)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("v = {0}, i = {1}", v, i);}  输出结果： v = 1, i = 1v = 2, i = 2v = 3, i = 3v = 4, i = 4v = 5, i = 5v = 6, i = 6v = 7, i = 7v = 8, i = 8v = 9, i = 9v = 10, i &lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1676894.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>LINQ的经典例子-Where，Select、SelectMany、SkipWhile子句中使用数组索引</title><link>http://blog.csdn.net/ghj1976/archive/2007/07/03/1676456.aspx</link><pubDate>Tue, 03 Jul 2007 10:54:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/07/03/1676456.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1676456.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/07/03/1676456.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1676456.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1676456</trackback:ping><description> Where 子句的用法 我们除了可以如下方式书写带Where子句的LINQ外：  from p in products&amp;nbsp;where p.UnitsInStock &amp;gt; 0 &amp;amp;&amp;amp; p.UnitPrice &amp;gt; 3.00M&amp;nbsp;select p; 还可以对数组（所有实现了IEnumerable接口的对象都可以）的实体使用 Where 扩展方法。 &amp;nbsp; 把一个查询语句写成多个扩展函数的方式，这其实是编译器处理查询语句的方法，比如下面的查询语句：  int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };var m = from n in arr where n &amp;lt; 5 orderby n select n;  编译器在编译后，替我们产生的代码等价于如下的代码：  IOrderedSequence&amp;lt;int&amp;gt; m = arr.Where&amp;lt;int&amp;gt;(delegate (int n) {&amp;nbsp;&amp;nbsp;&amp;nbsp; return (n &amp;lt; 5);}).Orde&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1676456.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>Orcas Beta1 对多个同名扩展方法的处理逻辑</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/12/1649494.aspx</link><pubDate>Tue, 12 Jun 2007 18:39:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/12/1649494.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1649494.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/12/1649494.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1649494.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1649494</trackback:ping><description>扩展方法是一个双刃剑,你如果要用扩展方法,就一定得准备碰到别人也用扩展方法,并且万一出现你们都对同一个类进行扩展函数名,参数一样的扩展时候, 会出的各种问题.&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1649494.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C#3.0 中 DLINQ 从数据库获得数据集，XLINQ从XML文件获得数据集的方法 </title><link>http://blog.csdn.net/ghj1976/archive/2007/06/12/1648959.aspx</link><pubDate>Tue, 12 Jun 2007 13:35:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/12/1648959.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1648959.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/12/1648959.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1648959.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1648959</trackback:ping><description>C#3.0 中 DLINQ 从数据库获得数据集，XLINQ从XML文件获得数据集的方法 &lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1648959.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C# 3.0 的Lambda表达式（Lambda Expressions）</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/12/1648612.aspx</link><pubDate>Tue, 12 Jun 2007 10:15:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/12/1648612.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1648612.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/12/1648612.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1648612.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1648612</trackback:ping><description>Lambda 表达式(拉姆达表达式) 和 匿名方法 其实是一件事情。唯一的不同是：他们语法表现形式不同。Lambda 表达式是在语法方面的更进一步的进化。引用自 C#首席架构师Anders Hejlsberg 的原话：&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1648612.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C#3.0 LINQ 查询语法</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/07/1642722.aspx</link><pubDate>Thu, 07 Jun 2007 17:18:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/07/1642722.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1642722.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/07/1642722.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1642722.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1642722</trackback:ping><description>C#3.0 LINQ 查询语法
为何 LINQ 查询语法是以 from 关键字开头的
&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1642722.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640929.aspx</link><pubDate>Wed, 06 Jun 2007 16:34:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640929.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1640929.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640929.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1640929.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1640929</trackback:ping><description>C# 3.0 中对象初始化器(Object Initializers)  和 集合初始化器(Collection Initializers) ，就是简化我们的代码，让本来几行才能写完的代码一行写完。这样在LINQ的使用中，我们才不会把一个LINQ表达式写的巨复杂无比。 

&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1640929.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C#3.0 中使用扩展方法来扩展接口</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640674.aspx</link><pubDate>Wed, 06 Jun 2007 14:31:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640674.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1640674.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640674.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1640674.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1640674</trackback:ping><description>C#3.0 中使用扩展方法来扩展接口&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1640674.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C#3.0 中的扩展方法 (Extension Methods)</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640347.aspx</link><pubDate>Wed, 06 Jun 2007 11:26:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640347.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1640347.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/06/1640347.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1640347.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1640347</trackback:ping><description>扩展方法的定义，需要注意三个部分：1、静态类（私有公共都可以）；2、静态方法（私有公共都可以）；3、第一个函数参数前带 this（必须是第一参数前） 

&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1640347.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>C# 3.0 的自动属性(Automatic Properties)</title><link>http://blog.csdn.net/ghj1976/archive/2007/06/05/1639077.aspx</link><pubDate>Tue, 05 Jun 2007 13:34:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/06/05/1639077.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1639077.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/06/05/1639077.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1639077.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1639077</trackback:ping><description>使用自动属性后，你可以不用手工声明一个私有成员变量以及编写get/set逻辑，取而代之的是，编译器会自动为你生成一个私有变量和默认的get/set 操作。&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1639077.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ghj1976</dc:creator><title>在查询语句中使用 NOLOCK 和 READPAST</title><link>http://blog.csdn.net/ghj1976/archive/2007/05/31/1632674.aspx</link><pubDate>Thu, 31 May 2007 13:15:00 GMT</pubDate><guid>http://blog.csdn.net/ghj1976/archive/2007/05/31/1632674.aspx</guid><wfw:comment>http://blog.csdn.net/ghj1976/comments/1632674.aspx</wfw:comment><comments>http://blog.csdn.net/ghj1976/archive/2007/05/31/1632674.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/ghj1976/comments/commentRss/1632674.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1632674</trackback:ping><description>对于非银行等严格要求事务的行业，搜索记录中出现或者不出现某条记录，都是在可容忍范围内，所以碰到死锁，应该首先考虑，我们业务逻辑是否能容忍出现或者不出现某些记录，而不是寻求对双方都加锁条件下如何解锁的问题。

&lt;img src ="http://blog.csdn.net/ghj1976/aggbug/1632674.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>