Visual Studio 2008功能提升

Visual Studio 2008的改进,我只是简单的进行一下提示,其实每个模块还有很多具体的细节需要进行研究,欢迎排砖。

1.   隐式类型的本地变量和数组 var

// anon is compiled as an anonymous type

var anon = new { Name = "Terry", Age = 34 };

// a is compiled as int[]

var a = new[] { 0, 1, 2 };

下面的集合初始值设定项使用对象初始值设定项来初始化在前面

的一个示例中定义的Cat 类的对象。请注意,各个对象初始值设

定项被分别括在大括号中,并且用逗号分隔。

List<Cat> cats = new List<Cat>

{

new Cat(){ Name="Sylvester", Age=8 },

new Cat(){ Name="Whiskers", Age=2},

new Cat() { Name="Sasha", Age=14}

};

匿名类型

var v = new { Amount = 108, Message = "Hello" };

2.   提供通过静态类定义静态方法扩展对象方法

Public Static class Extentsions{

  Public string exestr(this string str,int a)

{

  Stringbuilder sb=new stringbuilder();

  For(int i=0;i<a;i++)

{

  Sb.append(str);//重复a次

}

Return sb.tostring();

}

}

3.   Lambda 表达式

“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,

并且可用于创建委托或表达式目录树类型。

– 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为

“goes to”。该Lambda 运算符的左边是输入参数(如果有),

右边包含表达式或语句块。Lambda 表达式x => x * x 读作“x

goes to x times x”

delegate int del(int i);

del myDelegate = x => x * x;

int j = myDelegate(5); //j = 25

采用Lambda表达式

var results = people.Where(p => p.LastName == "White");

(input parameters) => expression

4.   什么是LINQ?

LINQ是语言集成查询(Language Integrated Query)的简称,是Visual Studio 2008 和.NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁,支持各种数据源。

查询基本操作(查询关键字)

– from子句

– where子句

– select子句

– group子句

– into子句

– orderby子句

– join子句

– let子句

Ling特点

  1. 查询变量本身只是存储查询命令。实际的查询执行会延迟到在foreach 语句中循环访问查询变量时发生。此概念称为“延迟执行”

// Query execution.

foreach (int num in numQuery)

{

Console.Write("{0,1} ", num);

}

  1. 强制立即执行

• 执行聚合函数(Count、Max、Average、First)

• 调用ToList(TSource>) 或ToArray(TSource>) 方法缓存结果

//queryAllCustomers is an IEnumerable<Customer>

var queryAllCustomers = from cust in customers

select cust;

5.   什么是LINQ to Objects?

直接对任意IEnumerable 或Ienumerable(T) 集合使用 LINQ 查询,

无需使用中间LINQ 提供程序或API,如LINQ to SQL 或LINQ to XML。

可以使用 LINQ 来查询任何可枚举的集合,如List(T)、Array 或Dictionary(T)。该集合可以是用户定义的集合,也可以是 .NET Framework API 返回的集合

• LINQ和字符串

• LINQ和反射

• LINQ和文件目录

• LINQ和ArrayList

6.   LINQ to DataSet

获取数据源

• 实现IEnumerable(T)泛型接口的数据源可以通过LINQ 进行查询。对DataTable 调用 AsEnumerable 将返回实现泛型IEnumerable(T)接口的对象,作为LINQ to DataSet 查询的数据源

– 创建查询

• 此查询变量不执行任何操作,也不返回任何数据;它只存储查询信息。 创建查询后必须执行该查询以检索任何数据

– 执行查询

• 查询的执行将推迟到在 foreach 或 For Each 循环中环访问查询变量之后进行。这称为“延迟执行”与返回一系列值的延迟查询相反,返回单一实例值的查询将立即执行。Count、Max、Average 和 First 是一些单一实例查询的示例

DataSet ds = new DataSet();

FillDataSet(ds);//填充数据

DataTable products = ds.Tables["Product"];

IEnumerable<DataRow> query = from product in products.AsEnumerable()

                                         select product;

Console.WriteLine("Product Names:");

foreach (DataRow p in query)

{

       Console.WriteLine(p.Field<string>("Name"));//循环输出字段值

}

Field 方法提供对 DataRow 列值的访问,而 SetField 设置 DataRow中的列值。

• Field 方法和SetField 方法都可以处理可以为null 的类型,因此不必像前面的示例那样检查 Null 值。

• 这两种方法也都是泛型方法,因此不必强制转换返回类型

 

7.   语言集成查询(LINQ)之LINQ to SQL

8.   语言集成查询(LINQ)之LINQ to XML入门篇

9.   新设计视图和 CSS 设计工具、新增js智能感知、Ajax智能感知

10.         数据访问功能提升

TableAdapterManager.UpdateAll(TypedDataset)

TableAdapter功能的提升

原文地址:https://www.cnblogs.com/lijinchang/p/3042527.html