存档

‘CShap’ 分类的存档

在Lambda表达式中进行递归调用

2010年1月4日 评论已被关闭

Lambda表达式是一个匿名的方法,在开发期我们是不知道其方法名是什么的,所以我们要怎么递归调用呢?

如果你看过我这文章《让您知道您的方法是被何“人”调用 》的话,你应该会“啊哈”的拍一下头脑,思路就出来了,没错!!就是直接用StackFrame获取当前执行的方法,然后直接Invoke即可。
阅读全文…

分类: CShap 标签: , ,

让您知道您的方法是被何“人”调用

2010年1月4日 1 条评论

也许在某些场合下我们想知道自己的某个方法是被谁(哪个方法)调用的?比如下面的例子:
阅读全文…

分类: CShap 标签: , ,

位标志的判断和增减运算

2009年12月31日 评论已被关闭

由于有读者对《C#程序设计基础教程与实训》214页的那个例子无法理解,所以专门写一篇文章对位标志进行讲解,希望可以对初学者有一些帮助。要理解这篇文章,首先要知道什么是位运算,什么是二进制,这些是计算机一级的内容,我不打算在这里讲解。如果有不懂的请上网用Google了解或查找相关书籍了解,写这篇文章的目的在于让你知道为什么要使用位运算,使用它会带来什么好处。
阅读全文…

分类: CShap 标签: , ,

C#里也可以用上Eval函数[即时运算]

2009年12月30日 4 条评论

因为在我的某个工具包里需要能动态执行一段代码进行求值的功能,也就是类似于JAVA SCRIPT里的Eval函数和VB SCRIPT的Execute函数功能,但C#与VB.NET却没有类似的函数:( 只能手动编写。上网搜索了一下,幸运的从一个英文站点找到了:)代码量很少,它是通过调用JScript.NET里的Eval函数进行处理的,下面是代码(部分代码我修改与删减过,并非完整的原代码,在此感谢原作者scott):
阅读全文…

分类: CShap 标签: ,

C#以不同算法写的迷宫算法

2009年12月30日 评论已被关闭

简单文字描述如下:

设定当前位置的初值为入口位置;

do{

若当前位置可通,

则{将当前位置插入栈顶; // 纳入路径

若该位置是出口位置,则结束;

// 求得路径存放在栈中

否则切换当前位置的东邻方块为新的当前位置;

否则
{

若栈不空且栈顶位置尚有其他方向未被探索,

则设定新的当前位置为: 沿顺时针方向旋转

找到的栈顶位置的下一相邻块;

若栈不空但栈顶位置的四周均不可通,

则{ 删去栈顶位置; // 从路径中删去该通道块

若栈不空,则重新测试新的栈顶位置,

直至找到一个可通的相邻块或出栈至栈空;

}while (栈不空)
阅读全文…

分类: CShap 标签: ,