1 / 24
文档名称:

Linq.ppt

格式:ppt   页数:24页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

Linq.ppt

上传人:xxj16588 2015/10/4 文件大小:0 KB

下载得到文件列表

Linq.ppt

相关文档

文档介绍

文档介绍:Linq
Language Integrated Query
目标
相关预备知识
Linq To Object
Linq To Data
Linq To Xml




Linq体系结构
自动属性
原有的C#语法采用如下方式定义属性
public class Person
{
private string name;
private int age;
public string Name
{
  get { return name; } set { name = value;}
}
public int Age 
{
get { return age; } set { age = value; }
}
}
自动属性
采用自动属性不需要定义内部字段
public class Person
{
public string Name
{
  get; set;
}
public int Age 
{
get;
set;
}
}
自动初始化器
原来创建一个对象并给属性赋值的语法如下:
Person person = new Person();  = ”吴家仁”;
 = 32;
使用自动化初始器后语法如下:
Person person = new Person (){Name = ”吴家仁”, Age = 32};
也可以嵌套使用
Person person = new Person (){Name = "Scott“,  Age = 32,       Address = new Address {Street = "One Microsoft Way",          City = "Redmond“, State = "WA“, Zip = 98052 }    };
集合自动初始化器
集合初始化器语法如下:
List<Person> people = new List<Person> 
{ new Person { Name = "Scott",Age = 32 }, new Person { Name = "Bill", Age = 50 }, new Person { Name = "Susanne", Age = 32 } };
扩展方法
如果现有的一个类,想给它加上新的函数,原有的方式是从现有的一个类继承一个新的类,在新的类中加入需要的函数,现在提供了新的方式给现有的类添加函数而且不用继承,这就是扩展方法。现以扩展String类为例,给String类加一个判断是否为电子邮件格式的函数。
首先新增一个类,如下
public static class ScottGuExtensions
{
public static bool IsValidEmailAddress(this string s)
{
Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
return (s);
}
}
类和方法都必须是静态的,方法参数前有“this”,表示附加到实例上去
隐式类型变量
隐式类型使用var关键字来声明变量,在变量声明时不需要指定数据类型,如下:
var v=”test string”;
隐式类型虽然不须声明变量类型,但要求在声明时赋值并可通过所赋的值推断出var变量的类型,所以隐式类型依然是强类型。
隐式类型变量使用限制
必须在声明时赋值并能正确推断,以下都是错误的。
var a=null;
var b;
只能应用在方法或属性内部的局部变量
public class Person
{
var name="test";
public var GetName()
{
return “”;
}
}