C#匿名类型简单介绍

C# 3.0新语言特性还是比较常见的东西,这里我们主要介绍C#匿名类型,包括介绍C#匿名类型允许定义行内类型,无须显式定义类型等方面。

总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我在这里简单介绍一下,记录自己所学的东西,也为后面的LINQ打下基础。

C# 3.0新语言特性和改进包括:
◆自动属性(Auto-Implemented Properties)
◆隐含类型局部变量(Local Variable Type Inference)
◆匿名类型(Anonymous Types)
◆对象与集合初始化器(Object and Collection Initializers)
◆扩展方法(Extension Methods)
◆Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)

C#匿名类型(Anonymous Types)

C#匿名类型允许定义行内类型,无须显式定义类型。常和var配合使用来声明匿名类型。

 
 
 
 
  1. var p1 = new { Id = 1, Name = "YJingLee", Age = 22 };//属性也不需要申明
  2. var p2 = new { Id = 2, Name = "XieQing", Age = 25 };
  3. p1 = p2;//p1,p2结构相同,可以互相赋值

在这里编译器会认为p1,p2相当于:

 
 
 
 
  1. public class SomeType
  2. {
  3. public int Id { get; set; }
  4. public string Name { get; set; }
  5. public int Age { get; set; }
  6. }

那么数组怎么定义呢?使用"new[]"关键字来声明数组,加上数组的初始值列表。像这样:

 
 
 
 
  1. var intArray = new[] { 2, 3, 5, 6 };
  2. var strArray = new[] { "Hello", "World" };
  3. var anonymousTypeArray = new[] 
  4. new { Name = "YJingLee", Age = 22 }, 
  5. new { Name = "XieQing", Age = 25 } 
  6. };
  7. var a = intArray[0];
  8. var b = strArray[0];
  9. var c = anonymousTypeArray[1].Name;

C#匿名类型要点:
1. 可以使用new关键字调用匿名初始化器创建一个匿名类型的对象。
2. 匿名类型直接继承自System. Object。
3. 匿名类型的成员是编译器根据初始化器推断而来的一些读写属性。

本文题目:C#匿名类型简单介绍
标题网址:http://www.hantingmc.com/qtweb/news33/410633.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联