关于八皇后回溯算法c#实现
关于八皇后回溯算法c#实现
在一个8×8国际象棋盘上,有8个皇后,每个皇后占一格;要求皇后间不会出现相互“攻击”的现象,
即不能有两个皇后处在同一行、同一列或同一对角线上。问共有多少种不同的方法。代码如下:
关于八皇后回溯算法c#实现
在一个8×8国际象棋盘上,有8个皇后,每个皇后占一格;要求皇后间不会出现相互“攻击”的现象,
即不能有两个皇后处在同一行、同一列或同一对角线上。问共有多少种不同的方法。代码如下:
关于fibonacci数列递归算法c#实现
根据1,1,2,3,5,8,13,21,34..用c#递归写出算法,算出第30个数。
上述数据是fibonacci数列
c#3.0新特性使用lambda表达式创建表达式树
题外话:这空间访问速度真慢,在我发布文章的时候,感觉花费九牛二虎之力。几篇已经准备好的文章花费1个多小时发布。
Using Lambda Expressions to Create Expression Trees 使用lambda表达式创建表达式树
1.使用前引入类
Working with Lambda Expressions 使用Lambda表达式
Lambda表达式有什么作用,它的使用方法是?
作用主要可以在匿名的方法的基础上,进一步简化代码,也可以隐藏delegate关键字
比如在2.0中代码如下:
var innerPoints = points.FindAll(delegate(Point p) { return (p.X > 0 && p.Y > 0); });
那么在C# 3.0 可以写为
var innerPoints = points.FindAll( p => p.X > 0 && p.Y > 0);
Lambda表达式的基本编写方法如以下代码所示:
(参数列表)=>{表达式};
表达式即事件处理方法体代码,参
Extension Methods 使用扩展方法
使用的时候需要注意的地方
1.扩展方法所属的类必须为静态非泛型类,扩展方法也是静态方法
2.第一个参数为被扩展的类型实例,并且必须用this进行修饰
3.第二个参数开始对对应被扩展类型实例所传递的参数列表,即扩展类型实例
C# 3.0 新特性隐含类型局部变量(Local Variable Type Inference)
一般情况下我们可以定义如下变量
int i = 43;
string s = "...This is only a test...";
int[] numbers = new int[] { 4, 9, 16};
SortedDictionary
new SortedDictionary
==================================================================
var 可变变量的定义则如下定义:
var i = 43;
var s = "...This is only a test...";
var numbers = new[] { 4, 9, 16 };
var complex = new SortedDictionary
这些变量在调试的时候可以把鼠标放到var上,则var则显示定义的类型
在C# 3.0里,对象和集合初始化更容易了
继续新特性之自动属性,现在看看如何对象和集合初始化
用上篇的Point类
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
对象类初始化可以这样定义了
Point p = new Point { X = 3, Y = 99 };
==========================
万丈高楼平地起,基础是重中之重。
所有我一定要搞点基础的东西,虽然已经是搞了几年程序了,有些基础知识也懂,但是没有系统的掌握。
而且发现现在弄的B/S系统里很多技术真的很落后了,也许我现在学的新技术有些用不上,并不代表不要学,
所有现在开始更加要全部重新学习或者复习一些基础东西。
1.C# 3.0新特性之自动属性(Auto-Implemented Properties)
类的定义