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节

转载于:https://www.cnblogs.com/errornull/p/9818841.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值