• C#3.0之匿名类型


    VS2008 Beta2 终于出来了,迫不及待的想体验一下。这里记述一些我的使用体验和大家分享。
    在这里我首先从C#3.0的语言本身来走马观花来体验语言层面给我带来那些惊喜。
    从语言本身来看C#3.0直接带给我们的新特性主要包括一下几个方面:
    1、隐含类型局部变量
    2、 扩展方法
    3、对象与集合初始化器
    4、匿名类型
    5、查询表达式(Linq)
    这些新的特性都是在原来C#2.0的基础上进一步扩展演变过来的,很多事情通过让编译器去做而简化我们程序员的工作,这样可以减轻程序员的工作量而提高工作效率。
    首先我们来体验一下,隐含类型局部变量这个特性:
                var sStr = "My String";
                var iInt = 100;
                var fFloat = 2.4;
                var arr = new[] { 1,2,3,4,5,6,6,7,8,9,10};
    这里的变量声明都是合法的,前面的var 是C#3.0新增的关键字,有了这个关键字,编译器在编译这段代码时会自动的根据后面初始化的语句来推断出变量的类型。
    var sStr = "My String";这条语句在编译器执行是会推断编译出 string sStr="My String"; 这里会将var 替换成 string 这里的var 不是一个具体的数据类型,它仅仅是个关键字,我们可以理解成占位符。
    同样的道理 var iInt = 100;会编译成 int iInt=100;
                            var fFloat = 2.4;会编译成 float=2.4;
                            var arr = new[] { 1,2,3,4,5,6,6,7,8,9,10};会编译成 int [] arr = new[] { 1,2,3,4,5,6,6,7,8,9,10};
    注意:
    (1)这个var只用于局部变量,可以用于foreach语句,如foreach(var i in arr) 这时我们可以不用关心arr是什么类型;
    (2)初始话语句必须是表达式,必须是编译器可以推断出来的类型,如果这样写是不合法的var a=null; 因为无法推断出null的类型是什么。

    下面作个小小的例子加以验证:

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

    namespace CApp
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {            
                var i 
    = 30;//隐式类型
                var b = 40;
                var arr 
    = new[] 12344444433438 };
                
    foreach (var j in arr) 
             
    {
                    Console.WriteLine(j);
                }

                Console.WriteLine(i);
                Console.WriteLine(b); 
                                                                 
            }

        }

    }

    输出结果:
    1
    2
    3
    4
    4
    4
    44
    43
    343
    8
    30
    40

                              

  • 相关阅读:
    地址路由使用
    SpringMVC的各种参数绑定方式
    SpringMVC 的 Controller 返回各种视图的处理方式
    jQuery过滤选择器:not()方法使用介绍
    js数组的操作
    ligerui grid行编辑示例
    ilter()和find()的区别
    java 文件字节输出流
    java 文件字节输入流
    java 创建一个File文件对象
  • 原文地址:https://www.cnblogs.com/vaiyanzi/p/894955.html
Copyright © 2020-2023  润新知