注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

匿名类型(C# 编程指南)  

2011-02-27 14:27:10|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。 类型名由编译器生成,并且不能在源代码级使用。 这些属性的类型由编译器推断。 下面的示例演示一个用两个分别名为 Amount 和 Message 的属性初始化的匿名类型。

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

匿名类型通常用在查询表达式的 select 子句中,以便返回源序列中每个对象的属性子集。 有关查询的更多信息,请参见 LINQ Query Expressions (C# Programming Guide)

匿名类型是使用 new 运算符和对象初始值设定项创建的。 有关对象初始值设定项的更多信息,请参见对象和集合初始值设定项(C# 编程指南)

匿名类型是由一个或多个公共只读属性组成的类型。 不允许包含其他种类的类成员(如方法或事件)。 匿名类型不能强制转换为除 object 以外的任何接口或类型。

最常见的方案是用其他类型的一些属性初始化匿名类型。 在下面的示例中,假定一个名为 Product 的类包含 ColorPrice 属性以及其他几个您不感兴趣的属性。 ProductsProduct 对象的集合。 匿名类型声明以 new 关键字开始。 它初始化了一个只使用 Product 的两个属性的新类型。 这将导致在查询中返回较少数量的数据。

如果您没有在匿名类型中指定成员名称,编译器会为匿名类型成员指定与用于初始化这些成员的属性相同的名称。 必须为使用表达式初始化的属性提供名称。

匿名类:匿名类用来表示临时使用的只读数据,所以必须在创建时初始化各字段的数据,并且只能读取这些字段的值,而不能设置这些字段的值
如:var val=new{StrVal="a String",IntVal=12};
val.StrVal
val.IntVal
val.ToString()

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AnonymousClass
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
//定义匿名类
            var val = new { StrVal = "HelloWorld", IntVal = 200 };
            System.Console.WriteLine(
"first variable is: {0};  theSecondVariable is:{1}",val.StrVal,val.IntVal);
            System.Console.WriteLine(
"val.ToString() is:{0}",val.ToString());
            System.Console.ReadLine();

        }
    }
}

结果:
first variable is: HelloWorld;  theSecondVariable is:200
val.ToString() is:{ StrVal = HelloWorld, IntVal = 200 }

  评论这张
 
阅读(891)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017