zoukankan      html  css  js  c++  java
  • Linq专题之var关键字

      在c#1.0,c#2.0中声明一个变量时,总是要指定变量的类型,如果不指定变量类型编译器就会报错,产生编译错误。在c#3.0中我们可以不指定变量的具体类型,而使用一个新的关键字"var"来指定变量的类型,该变量的实际类型将在其初始化表达式中推到出来。下面实例代码中,我们用var声明了3个局部变量,并获取他们的类型:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Linq;
     6 
     7 namespace LinqDemo
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13 
    14             LingVar();
    15         }
    16 
    17         private static  void LingVar()
    18         {
    19 
    20             var numberid = 10086;
    21 
    22             var name = "IT少年";
    23 
    24             var arrayCity = new string[] { "BeiJing", "ShangHai" };
    25 
    26 
    27             Console.WriteLine("--numberid的类型----");
    28             Console.WriteLine(numberid.GetType().ToString());
    29 
    30             Console.WriteLine("--name的类型----");
    31             Console.WriteLine(name.GetType().ToString());
    32 
    33             Console.WriteLine("--arrayCity的类型----");
    34             Console.WriteLine(arrayCity.GetType().ToString());
    35 
    36             Console.ReadKey();
    37 
    38 
    39         }
    40     }
    41 }

    运行代码可以看到:

    我们从运行结果可以看到,最终numberid被推断出类型为System.Int32,name被推断出System.String,arrayCity推断为System.String[]  数组类型。完全是正确的。

    但是在var使用过程中必须遵循3个原则:

    1、var声明的变量必须包含初始化器,初始化器必须为一个表达式,且初始化器不能包含自身对象。

    var numberid = numberid + 1;//编译错误

    可以看到上面的编译错误很明显。

    2、var声明的变量初始化值不能为null。

    3、var声明变量时,不能在同一语句中初始化多个隐式类型的变量。

    看来var 关键字很方便,可以简化代码,但是大量使用var声明变量会使得代码难以理解。因此我们一般在Linq表达式中难以确定变量的查询结果的类型的时候使用var关键字是一个不错的选择。

  • 相关阅读:
    JQUERY 滚动 scroll事件老忘记 标记下
    js获取iframe里的body内容
    win8.1企业版 IIS8.5 安装php5.5.18详细图文
    JS 根据特定URL获取ID数组
    wampserver 2.5安装pear win8.1
    webstorm 文件历史找回~ 恢复正确状态~
    深入浅出数据库索引原理(转)
    Winform自定义表单(转)
    用 ASP.NET MVC 实现基于 XMLHttpRequest long polling(长轮询) 的 Comet(转)
    面对海量请求,缓存设计还应该考虑哪些问题?(转)
  • 原文地址:https://www.cnblogs.com/yplong/p/5386778.html
Copyright © 2011-2022 走看看