您的位置:首页 > 编程学习 > ASP.NET > 正文

ASP.NET匿名类型var

更多 时间:2014-6-4 类别:编程学习 浏览量:1620

ASP.NET匿名类型var

ASP.NET匿名类型var

var是初始化一个匿名类型对象的专用关键字,关键字var的引入, 背后是强大的编译器做支持, 没有显式的类型声明在程序运行的时候就无法给这个类型的实例分配大小合适的内存!

为了获得可维护的代码, 不要因为使用var关键字方便, 就随意使用这个关键字. 尽量在需要的时候再使用, 比如在讲一个匿名类型的对象赋值给一个变量的时候.

 

一、在使用var定义变量时有以下四个特点:

1. 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式:


var s;
s = “abcd”;


2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。

3. var要求是局部变量。

4. 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。但笔者建议如果事先知道变量的类型,尽量使用强类型方式来声明变量。否则,就会造成由于大量使用var,而使得开发人员很难断定某个变量是什么类型。这样不利于程序的维护和升级。

 

二、匿名类型限制条件

 

没有控制匿名类型的名字

匿名类型继承自Object

匿名类型的字段和属性总是只读的

匿名类型不支持事件、自定义方法、自定义操作符和自定义重写

匿名类型是隐式封闭的

匿名类型的实例创建只使用默认构造函数

 

三、实例

  •  
  • C# 代码   复制
  • 
     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 }
    
    			

     

  •  

    标签:匿名类型