C#3.0学习(3)---匿名类型

本文介绍了C#中匿名类型的使用方法及其特点。通过实例演示了如何利用var关键字声明匿名类型对象,以及如何通过对象初始化器创建匿名对象。还讨论了匿名类型在编译过程中的实现细节。

匿名类型是在初始化的时候根据初始化列表自动产生类型的一种机制,利用对象初始化器来创建匿名对象的对象。如:

var oec=new {Name="oec2003", Age=100}

在创建对象的语句中用到了var和new两个关键字,var关键字用来声明一个匿名类型的对象名字,var和Object不同,她是一种强类型,在此是起到了一个占位符的作用,编译时编译器会推断出实际类型。new关键字后直接是一对大括号,并不是类型名称,因为匿名类型的名字是在编译时由编译器自动生成。大括号里的Name和Age为匿名类型的属性,可以看到是在Name和Age的后面直接赋值,并没有指明类型,也将由编译器来推断出他们的类型,比如编译后会将Name推断为string型,Age推断为Int型。所以我们可以看到匿名类型给我们带来了很大的方面和灵活性,同时也将使代码变得不易看懂。上面的代码经过编译后会产生类似如下代码:

class Anonymous1
{
    private int _name = oec2003;
    private int _age = 100;

    public int a
    {
        get { return _name; }
        set { _name = value; }
    }
    public int b
    {
        get { return _age; }
        set { _age = value; }
    }
}

在同一个程序中如果定义的不同匿名类型中的对象初始化器中的名称,类型,和顺序都相同,将会长生同一个匿名类型的不同实例,如下:

var oec1=new {Name="oec2003" ,Age=100}
var oec2=new {Name="oec2004" ,Age=200}
oec1=oec2

我们可以这样来访问匿名类型中的成员

var oec=new {Name="oec2003", Age=100}
string name=oec.Name;
int age=oec.Age
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值