类型推断使用var关键字。编译器根据变量初始化的内容“推断”变量的类型。
例如var somenum=o;变成int somenum=0;
尽管 somenum 从未被声明为int,但编译器指出了这一点&只要它在作用域内,它就是一个int。
它类似于在variant中使用的visual basic类型。在程序中使用它,在一定程度上降低了性能& var在3.5以前不包含在点网框架中。
即使它降低了性能&点网框架支持强类型检查,为什么在框架3.5中包括var?
var紫罗兰强型检查吗?如果不是怎么做的?
发布于 2012-11-15 14:44:16
var根本不会降低性能。变量仍然是强类型
隐式类型局部变量是强类型的,就像您自己声明了类型一样,但编译器决定类型。
唯一的区别是,您不必手动拼写源代码中的类型。如果你指的是VB 6的Variant,那根本就没有关系。
发布于 2012-11-15 14:45:36
它一点也不像Variant,也不降低性能。
在.NET中,var是由编译器提供的一种速记机制;编译的代码是强类型的,就像您已经声明了正确的类型一样。
发布于 2012-11-15 14:46:00
什么?不,哇,你搞错了。
C#的var与VB的Variant完全不同,那是C#中的dynamic (或多或少)。
var只是编译器在编译程序时填写的占位符,在运行时,实际类型被完全声明和使用,因此绝对不会造成性能损失。
// this won't work
var i=0;
i="a"; // it would with dynamic though!https://stackoverflow.com/questions/13399817
复制相似问题