关键字Var 原理详解
MSDN上看到的,觉得不错,所以翻译下来,加上自己的一些理解。
在MSDN上,Var 的原意大体上是以一个“未定义类型”来解释的。
基本变量可以是除了基本数据类型之外的Var型引用数据类型。
var 表达式命令编译器让等式右边的类型去作为var成为其真实类型的引用。
这种引用可以是内置的数据类型(如int,string...),也可以是用户自定义类型(比如实体类等),或者是匿名类型(稍后会说到有关的知识). 也可以是NET FRAMEWORK内置的类型。
下面的例子很好的列出了各种类型。
重要:理解var的关键,并不在于var是一个“可变化的”以及Var并不是一个代表广泛类型(反正就是包罗万象),或者是后期绑定的。VAR的真实类型只是编译器决定和分配的“最适合” 的类型,只和编译器有关。
var 被广泛应用于各种场合。
主要有for,foreach 循环或者 using()语句中,如下所示:
下面来介绍一下var和匿名类型的结合。
在很多场合里使用Var可以让代码变得简单和使用起来方便。
但是如果是匿名类型的话,你又想在稍后的代码中用到这个对象的属性的话,就必须使用var关键字来定义。
这在LINQ中是基本的规定。
下面这段代码中,匿名类型中没有name属性,所以,如果一个变量被定义为了Var,想访问属性name唯一的办法就是返回一个对象的序列,利用迭代器foreach迭代变量。
我们再来说一下隐式类型的Array
我们可以创建隐式类型的数组让他的实例来自指定元素的引用在数组的初始化器中。
其他隐式类型的规则全部适用于数组隐式类型的规则。
隐式类型的数组经常用于匿名类型,对象类型和集合类型的查询表达式里,如上面的例子。
上面的例子中,可以注意到等式的左边并没有方括号[],这是时候要用new关键字+方括号的方式去书写。
下面来介绍隐式数组在初始化对象中的用法
看下面的代码
上面的例子中contacts是一个隐式类型的数组,每个PhoneNumbers 的里面,还有一个数组,大家可以看到
注意一下,在name 和PhoneNumbers 的左边,并没有定义var关键字,这种书写方式要注意一下。
__EOF__
作 者:ღKawaii
出 处:https://www.cnblogs.com/kmsfan/p/3663435.html
关于博主:一个普通的小码农,为了梦想奋斗
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!

出处:http://www.cnblogs.com/kmsfan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家加入KMSFan之家,以及访问我的优酷空间!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?