文章分类 - C# 语法糖
摘要:[ C# 3.0/.NET 3.x 新增特性 ] 2.1 初识LINQ:类似SQL风格的代码 LINQ又称语言集成查询,它是C# 3.0的新语法。在更多的人看来,它是一种方便的查询表达式,或者说是和SQL风格接近的代码。 var maleList = from p in personList whe
阅读全文
摘要:[ C# 3.0/.NET 3.x 新增特性 ] 标准查询运算符提供了包括筛选、投影、聚合、排序等功能在内的查询功能,其本质是定义在System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法。 从上图可以看出,在Enumerable类中提供了很多的扩展方法
阅读全文
摘要:[ C# 3.0/.NET 3.x 新增特性 ] 回顾,发现上面的代码,需要传一个 匿名方法 ,写起来特别别扭。于是我们很想知道能否有简化的语法呢?微软告诉咱们:Of Course,必须有,它就是Lambda表达式。Lambda表达式是比匿名方法更简洁的一种匿名方法语法。 Lambda来源:1920
阅读全文
摘要:MSDN给出的定义:表示比较同一类型的两个对象的方法。 它的定义也很简单: public delegate int Comparison<in T>(T x, T y) T是要比较的对象的类型,而返回值是一个有符号整数,指示 x 与 y 的相对值,如下表所示: 值 含义 小于 0 x 小于 y。 0
阅读全文
摘要:3.1 初识Predicate 经过了Func的了解,我们可以知道接下来的这两个Predicate和Comparison其实都属于有返回值类型的委托,他们不过是两个具体的特殊实例而已(一个返回bool类型,一个返回int类型)。 MSDN给出的定义:表示定义一组条件并确定指定对象是否符合这些条件的方
阅读全文
摘要:2.1 初识Func MSDN给出的定义:封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。 此委托的定义如下: public delegate TResult Func<in T, out TResult>(T arg) (1)in T :此委托封装的方法的参数类型。 (2)ou
阅读全文
摘要:1.1 初识Action MSDN给出的定义:封装一个方法,该方法不具有参数并且不返回值。 可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托。封装的方法必须与此委托定义的方法签名相对应。也就是说,封装的方法不得具有参数,并且不得返回值。(在 C# 中,该方法必须返回 void)通常,这种
阅读全文
摘要:[ C# 3.0/.NET 3.x 新增特性 ] 3.1 神奇—初玩扩展方法 (1)提到扩展方法,我想大部分的园友都不陌生了。不过还是来看看MSDN的定义: MSDN 说:扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。这里的“添加”之所以使用引号,
阅读全文
摘要:[ C# 2.0/.NET 2.0 新增特性 ] 2.1 从委托的声明说起 C#中的匿名方法是在C#2.0引入的,它终结了C#2.0之前版本声明委托的唯一方法是使用命名方法的时代。不过,这里我们还是看一下在没有匿名方法之前,我们是如何声明委托的。 (1)首先定义一个委托类型: public dele
阅读全文
摘要:[ C# 3.0/.NET 3.x 新增特性 ] 1.1 不好意思,我匿了 在开发中,我们有时会像下面的代码一样声明一个匿名类:可以看出,在匿名类的语法中并没有为其命名,而是直接的一个new { }就完事了。从外部看来,我们根本无法知道这个类是干神马的,也不知道它有何作用。 var annoyCla
阅读全文
摘要:[ C# 3.0/.NET 3.x 新增特性 ] 4.1 属性初始化器 (1)在开发中,我们经常会这些为new出来的对象设置属性: static void InitialPropertyFunc() { Person p = new Person() { Name = "小强", Age = 18
阅读全文
摘要:[ C# 4.0/.NET 4.0 新增特性 ] 3.1 带默认值的方法 static void Main(string[] args) { // 01.带默认值参数函数 FuncWithDefaultPara(); // 02.省略一个默认参数调用 FuncWithDefaultPara(1008
阅读全文
摘要:[ C# 3.0/.Net 3.x 新增特性 ] 2.1 犹抱琵琶半遮面—你能猜出我是谁? 以前,我们在定义每个变量时都需要明确指出它是哪个类型。但是,当有了var之后,一切变得那么和谐,我们可以用一个var定义所有的类型。 var age = 100; age += 150; var name =
阅读全文
摘要:[ C# 3.0/.Net 3.x 新增特性 ] 1.1 以前的做法:先写私有变量,再写公有属性 public class Student { private Int32 _id; public Int32 Id { get { return _id; } set { _id = value; }
阅读全文