当前位置:网站首页 / asp.net /C# / 正文

C#类型推断浅析

时间:2018年02月02日 | 作者 : ningjian | 分类 : asp.net /C# | 浏览: 58次 | 评论 0

类型推断允许编译器自动推断出表达式的类型。类型推断有两个关键字:auto 和 decltype


1. 关键字 auto  


关键字 auto有4种完全不同的含义。

第一种含义是告诉编译器,在编译时自动推断变量的类型。


下面的代码演示了在这种情况下,关键字 auto最简单的用法: 


 auto x = 123;    // x will be of type int  


在这个示例中,输入auto和输入int的效果没有什么区别,但auto对较复杂的类型会更有用。


假定getFoo()函数有一个复杂的返回类型。如果希望把调用该函数的结果赋予一个变量,就可以输入该复杂类型,也可以简单地使用auto,让编译器推断出该类型:


  auto result = getFoo();   


关键字 auto的第2种用途是用于前面介绍的替代函数语法,第3种用途是用于函数返回类型的推断,如前所述。


最后,auto的第4种用途是用于通用的lambda表达式 




 2. 关键字decltype  


关键字decltype把表达式作为实参,计算出该表达式的类型。


例如:  int x = 123;  decltype(x) y = 456;  


在这个示例中,编译器推断出y的类型是int,因为这是x的类型。与用于替代函数语法的auto关键字一样,关键字decltype初看起来似乎并没有增加什么价值。


但对于模板而言,auto和decltype是非常强大的。





猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。