1.初始器

  当你新建一个对象实例的时候,是否遇到下面这种情况:

class a = new class();
a.item1 = "";
a.item2 = "";

  或者写一个构造函数去专门初始化这些东西,但是用初始化器,你可以不用专门去写一个构造函数就可以初始化参数,直接一步到位

class a = new class(){item1 = "", item2 = ""};

2.类型推理

  C#可以根据var关键字去推断当前的类型时是什么类型,这个在后面的应用会非常有效,例如说linq

var num = ;//编译器帮我们自动判断为int类型

3.匿名类型

  当我们需要创建一个对象去专门存储数据的时候就会写以下代码:

class temp{
public string item1;
public string item2;
private int item3;
} //然后在使用的地方直接new该对象,然后赋值
temp t = new temp(){item = "",item2="",item3 = };

  C#可以根据要存储的数据自动创建类型,而不用我们去定义那些数据存储类型。

temp t = new{item1 = , item2 =};

4.Lambda

  Lambda用以简化委托函数的参数传递,当我们去使用IEnumerbale的方法的时候就会遇到一些委托函数的传递,比如说where();

  where函数需要传递一个参数为当前类型,返回类型为bool的函数过去作为参数如下所示:

public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  如果用普通的方法那么则需要先写一个比较函数,然后把这个函数的名字传递过去

  如下所示:

static void Main(string[] args) {
List<int> list = new List<int>();
for (int i = ; i < list.Count; i++) {
list[i] = i;
}
// 把定义函数的名字传过去
IEnumerable<int> w = list.Where(compare); }
//先定义一个比较的函数
static bool compare(int i) {
return i > ;
}

  但是上面的代码比较得冗余,我们可以使用一种更方便的方法,那就是Lambda,类似于上面所说的匿名类型,这次是匿名函数(Lambda)。

List<int> list = new List<int>();
for (int i = ; i < list.Count; i++) {
list[i] = i;
}
IEnumerable<int> w = list.Where((x) =>{return x > ;});
Console.ReadKey();

  其中里面的x用来定义形参,=>是分隔符,分隔开参数和代码实现地方,后面是代码实现地方,下面是简化版的,如果去掉{}后面的代码就是return。

List<int> list = new List<int>();
for (int i = ; i < list.Count; i++) {
list[i] = i;
}
IEnumerable<int> w = list.Where(x => x > );
Console.ReadKey();

 

最新文章

  1. Debain下解决sublime无法输入中文
  2. 【背景建模】SOBS
  3. Eclipse中使用tomcat 8服务器初级教程
  4. 直接引用windows命名空间
  5. ActionResult 的返回类型
  6. shell-改变分隔符
  7. ClassLoader类加载解惑
  8. 《JAVASCRIPT高级程序设计》Ajax与Comet
  9. es6五种遍历对象属性的方法 - 表格整理
  10. Mysql exists 与 in
  11. 即时通讯(I)
  12. AD域创建用户无法登录
  13. Sublime Text 3 For Mac
  14. zookeeper java调用及权限控制
  15. android 安全退出 activity
  16. 0, \0, NULL
  17. Sql Server的弱口令入侵测试以及防范
  18. python时间格式化及前推
  19. [posix]Posix多线程编程
  20. Ubuntu的常识使用了解

热门文章

  1. BZOJ 4819 新生舞会
  2. Docker -- 安全/部分命令/Daemon
  3. DataInputStream EOFEXCEPTION
  4. 进程间通信 ipcs
  5. 关于理解python类的小题
  6. Ajax 的用法
  7. MySQL集群PXC的搭建
  8. &lt;转&gt;shell经典,shell十三问
  9. SQLSERVER 死锁标志
  10. 用 HAproxy 搭建 RabbitMQ 集群