.net 关于匿名类型的特性

匿名类型

   1: var n1 = new { name = "name1", age = 40 };

   2: var n2 = new { name = "name2", age = 31 };

   3: var n3 = new { name = "name3", age = 32 };

   4: Console.WriteLine("{0} is {1} years old",n1.name,n1.age);

结合数组应用

var family = new[]
{
    new { name = "Holly", age = 31 },
    new { name = "Jon", age = 31 }
};

结合序列化

var list = new List<object>();
for (int i = 0; i < id_arrt.Length; i++)
{
    list.Add(new { Name = "Tom", Age = 4 });
}
context.Response.Write(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(list));
时间: 2024-10-12 09:25:33

.net 关于匿名类型的特性的相关文章

编写高质量代码改善C#程序的157个建议——建议26:使用匿名类型存储LINQ查询结果

建议26:使用匿名类型存储LINQ查询结果 从.NET3.0开始,C#开始支持一个新特性:匿名类型.匿名类型有var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 即支持简单类型也指出复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 匿名类型的属性是只读的,没有属性设置器,它一旦被初始化就不可更改. 如果两个匿名类型的属性值相同,那么就认为这两个匿名类型相等. 匿名类型可以再循环中用作初始化器. 匿名类型支持智能感知. 匿名

理解隐式类型、对象初始化程序和匿名类型

在C# 3.0中,几乎每个新特性都是为LINQ服务的.所以,本文将介绍下面几个在C# 3.0中引入的新特性: 自动实现的属性 隐式类型的局部变量 对象和集合初始化程序 隐式类型的数组 匿名类型 其实这几个特性都是比较容易理解的,对于这几个特性,编译器帮我们做了更多的事情(想想匿名方法和迭代器块),从而简化我们的代码. 自动实现的属性 在C# 3.0以前,当我们定义属性的时候,一般使用下面的代码 public class Book { private int _id; private string

可选参数、命名参数、.NET的特殊类型、特性

1.可选参数和命名参数    1.1可选参数        语法:            [修饰符] 返回类型 方法名(必选参数n,可选参数n)        注意:            1.必选参数可以不存在,也可以有多个:可选参数可以有1个或多个            2.可选参数必须放在必选参数之后            3.可选参数在定义时需要赋初始值            4.可选参数之间也需要使用,进行分隔            5.调用可选参数时,不能跨参数赋值    1.2命名

Entity Framework 6 Recipes 2nd Edition(11-5)译 -&gt; 从”模型定义”函数返回一个匿名类型

11-5. 从”模型定义”函数返回一个匿名类型 问题 想创建一个返回一个匿名类型的”模型定义”函数 解决方案 假设已有游客(Visitor) 预订(reservation)房间(hotel ) 的模型,如Figure 11-5所示. Figure 11-5. A model for hotel reservations 想要返回每位游客房间预订条数和带来的总收入.因为很多地方需要这些信息,所以想要创建一个”模型定义”函数,接受一个查询参数,返回一个包含游客合计信息的匿名类型的集合: 2. 把Li

匿名类型

在C#里有这样一些类型,它是作为临时储存数据的,生命周期只在这个方法内,方法结束了,这个类型的生命周期也没有了.那么这里我们就可以使用一个匿名类型. 还是先介绍一下隐式类型局部变量吧: 在C# 3.0里多了一个关键字var,他表示这样的一种类型:C#编译器可以根据上下文推断的出来比如var I = 5;编译器可以根据后面的赋值推断的出来i应该是个整型.既然是局部变量,那么它就只能用在方法内部了,注意C#是强类型的,引入了一个var并不是像javascript那样,变成了一个弱类型的语言.在编译器

ASP.NET中的参数与特殊类型和特性

一.可选参数和命名参数        1.可选参数            语法:                [修饰符] 返回类型 方法名(必选参数1...必选参数n,可选参数1...可选参数n)                            eg: 1 static void BookList(string category,int pageIndex = 1) 2 { 3 //操作 4 } 5 6 //调用 7 static void Main(string[] args) 8 {

编写高质量代码改善C#程序的157个建议[匿名类型、Lambda、延迟求值和主动求值]

原文:编写高质量代码改善C#程序的157个建议[匿名类型.Lambda.延迟求值和主动求值] 前言 从.NET3.0开始,C#开始一直支持一个新特性:匿名类型.匿名类型由var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 1.既支持简单类型也支持复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 2.匿名类型的属性是只读的,没有属性设置器,它一旦倍初始化就不可更改. 3.如果两个匿名类型的属性值相同,那么就任务这两个匿名类型

C#匿名类型与VB匿名类型及其差异

一.C#中的匿名类型 匿名类型是C#3.0(framework3.5)中引入的一个新特性.匿名类型顾名思义,就是没有类型名称的一种对象,其直接从object继承 C#的匿名类型有两种方式定义: //1.直接声明成员,并初始化 Func<int, int> fun = x => x + 1; var ann1 = new { A = "Str", B = new Object(), C = fun //C#中可以使用委托,但是不能把一个拉姆达表达式直接赋值给成员,例如C

【C#复习总结】匿名类型由来

1 属性 这得先从属性开始说,为什么外部代码访问对象内部的数据用属性而不是直接访问呢,这样岂不是更方便一些,但是事实证明直接访问是不安全的.那么,Anders Hejlsberg(安德斯·海尔斯伯格)就为C#加入了属性这种语法糖,用起来跟数据成员一样,但实际上是 setXX()和getXX(),既安全又方便. 属性:是访问对象的首选方式,因为它们禁止外部代码访问对象内部的数据存储机制的实现. public int MyIntProp { get { //property get code } s