zoukankan      html  css  js  c++  java
  • CLR via C#学习笔记-第九章-隐式类型的局部变量

    9.2 隐式类型的局部变量

    C#能根据初始化表达式的类型推断方法中的局部变量的类型。

    private static void ImplicitlyTypedLocalVariables()
    {
        var name="Jeff";//System.String
        //var n=null//错误,不能将null赋值给隐式类型的局部变量
        var x=(String)null;//可以这样写但意义不大,System.String
        //声明数组
        var numbers=new Int32[]{1,2,3,4};//System.Int32[]
        //复杂类型少打字
        var collection=new Dictionary<String,Single>(){{"Grant",4.0f}};
        //foreach里少打字
        foreach(var item in collection){}
    }

    主要用处

    在复杂类型中不需要在左侧写出全称,如果需要修改类型仅需修改右侧的类型。

    在foreach循环中,var让编译器自动推断集合中元素的类型。

    还可在试验代码时利用它,用方法的返回值初始化隐式类型的局部变量。

    开发方发时可以灵活更改返回类型。编译器能察觉到返回类型的变化并自动更改变量的类型。

    注意事项

    不能用var声明方法的参数类型。

    编译器必须根据在call site传递的实参来推断参数类型,但call site可能一个都没有也可能有好多个。

    不能用用var声明类型中的字段。

    字段可以被多个方法访问,这个变量的类型应该显示陈述,一旦允许,匿名类型就会泄露到方法的外部。

    用var声明局部变量只是一种简化语法,不要混淆dynamic和var。参考第五章5.5节

  • 相关阅读:
    C# 多态性
    C# FileStream类
    C# File文件类
    加快访问GitHub的速度
    Git-修改.gitignore后使其配置生效的方法总结
    ES6 解构赋值
    avue表单数据请求
    uniapp canvas组件复用
    uniappH5 fly.js Golang 解决跨域问题
    java bug记录
  • 原文地址:https://www.cnblogs.com/errornull/p/9818841.html
Copyright © 2011-2022 走看看