今天和BOSS在QQ上聊天,他说他写了一个很牛B的lambda写的递归自调用的类,还给我传过来,让我研究下,说懂了的话你的lambda也就毕业了~我那个汗啊~马上打开代码,傻眼了~~完全看不懂~~我再仔细琢磨,突然发现不知道递归是怎么一回事,我那个汗啊~大三学的数据结构都忘记了,马上谷歌百度一起上,找到了一个不错的递归代码

 1 class Program
 2     {
 3         static void Main() 
 4         {
 5             Program pr = new Program();
 6             pr.Count(3);
 7         }
 8         public void Count(int intval)
 9         {
10             if (intval == 0)
11             {
12                 return;
13             }
14             Count(intval - 1);
15             Console.WriteLine("{0}", intval);
16         }
17 }

 

我一看这不简单,肯定是3,2,1。可是答案却是1,2,3

我觉得不对头,于是写了个断点调试了一下,运行到return之后,Count(intval - 1)开始不断地重复,把原来的值都恢复了过来。

实在不明白递归为什么会是先进后出?找了点资料。

总结递归的用法,可以用一句话来形容,“层层递进,原路返回”,正如上边的程序所示。每次调用Count方法时,只要intval的值!=0就会继续调用count方法,这叫做层层递进。但Count函数是要返回值的,如果没有得到返回值,函数就会被挂在那里,等待着返回值,有了函数才能算执行完毕,程序才能往下继续执行。在层层递进地过程中,当intval=0的时候,这时就到了原路返回的时候了.由于刚才挂起的函数都在等返回值。所以一旦有了返回值函数要一个一个的退出,本着先进后出的原则一个一个的给它的上级函数一个返回值最后当退到intval为3 就出现了我们所要的结果。

posted @ 2009-12-02 20:27 TUTO 阅读(88) | 评论 (0)编辑

都不知道哪些所谓的高手都是干什么吃的?浪费哥无数时间~~~ ­在此哥留个存根~~~

 

Code

 

另外在winform里面checkedlistbox根本没有valuemember等属性,需要手打出来!!

 

posted @ 2009-10-21 11:16 TUTO 阅读(118) | 评论 (0)编辑
Code
代码还是看的不太懂~~感觉好深奥~继续努力学习~~
posted @ 2009-06-23 10:46 TUTO 阅读(64) | 评论 (3)编辑

1、pageTool.cs

Code

2、test.aspx.cs

TestDataContext test = PageTool.Get<TestDataContext>();

这是调用的代码,得到一个TestDataContext的类型,就实现了新建TestDataContext的实例。

好处在于:

      当我们需要在多个方法中调用该类型时,需要不停地实例化,这样就给系统带来了开销,上一个ListView实例中,我直接新建了TestDataContext的实体,这样顶多就是降低了代码量,但是反而给系统带来负担,因为有的方法不需要这样的实例。所以又方便又能节约系统资源和提高系统性能的解决方案是:

      建立泛型,泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。它允许程序员将一个实际的数据类型的规约延迟至泛型的实例被创建时才确定。泛型为开发者提供了一种高性能的编程方式,能够提高代码的重用性,并允许开发者编写非常优雅的解决方案。

posted @ 2009-06-18 13:51 TUTO 阅读(20) | 评论 (0)编辑

用惯了GridView,DataList,今天学习了关于ListView的操作,在此做一个备忘!

首先是ListView的模板机制

<LayoutTemplate>是用来标记表格的标题列;

<ItemTemplate>是用来显示数据的;

<EditItemTemplate>是用来进行数据编辑的才显示的;

<InsertItemTemplate>是用来插入数据时才显示的;

以下是前台代码的具体实现:

Code

 

下面的后台的代码分析:

1、首先先要做的就是进行数据库连接操作,这里采用LINQ,

直接在App_Date的里面创建数据库(第一次遇到,以前都是在进入SQL SERVER2005里面进行操作)

2、其次,新建Models的文件夹,新建 LINQ to SQL 类。

然后直接将数据库拖入到该文件中,他将自动生成数据库操作类(非常方便快捷!)。

3、下面是代码部分:

 

Code

 

posted @ 2009-06-18 13:28 TUTO 阅读(113) | 评论 (0)编辑