• 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节

  • 相关阅读:
    “是懒人造就了方法”——读后感
    多态性动手动脑
    数组问题随笔
    String java问题随笔
    java问题总结
    java问题随笔
    java一些问题的解答
    利用参数的值得返回来求和
    是懒人造就了方法——读后感
    大道至简读后感——JAVA伪代码
  • 原文地址:https://www.cnblogs.com/errornull/p/9818841.html
Copyright © 2020-2023  润新知