iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >.NET Framework隐式类型变量的相关概念是什么
  • 397
分享到

.NET Framework隐式类型变量的相关概念是什么

2023-06-17 18:06:20 397人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关.net Framework隐式类型变量的相关概念是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。.NET Framework中有一种新的特性,叫

本篇文章给大家分享的是有关.net Framework隐式类型变量的相关概念是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

.NET Framework中有一种新的特性,叫做.NET Framework隐式类型变量。我们会在这篇文章中详细的为大家介绍相关知识。使用vs 2008,可以声明一个变量,让编译器隐式地决定该变量的类型。LINQ就是使用这个功能处理所创建的变量的。要使用这个功能,需要使用var关键字:

var x=5;

使用这个语句时,编译器会使用5来确定该变量的类型。这表示,该语句实际上应该如下表示:

int x=5;

.NET Framework隐式类型变量是强类型的,在编译器***次编译后var就会被确定的类型所替代的.

隐式类型化的变量关键字与js中的var:

javascript是弱类型的语言,而且javascript中的变量(也包括用var声明的变量)可以变换类型,如下面的javascript所示:

var s = "abcd";  s=3;  alert(s);

上面的代码***次给s赋了一个字符串,而第二行代码又给赋了一个整数。这样的代码在javascript中没有任何问题。但在C#3.0中,var变量一但被初始化,确定类型后,就无法改变类型了。如下面的代码是无法编译通过的:

var ss = "abcd";  ss = 44;

综上所述,在使用.NET Framework隐式类型变量var定义变量时有以下四个特点:

必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式:

var s;  s = “abcd”;

它是编译器根据上下文推断出来的,所以所有一切不能被编译器推断出来的用法都是错误的。比如不能这样使用:var nullValue = null;因为null啥也不是,他是一个空指针,是一个不确定的东西。也不能这样使用:var I = 5;I = “abc”;编译器根据***个赋值会推断出它是一个整型,但是随后又将一个字符串赋值给它,这是怎么回事呢?

var要求是局部变量。

使用.NET Framework隐式类型变量var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。但笔者建议如果事先知道变量的类型,尽量使用强类型方式来声明变量。否则,就会造成由于大量使用var,而使得开发人员很难断定某个变量是什么类型。这样不利于程序的维护和升级。(只在编译器可推断而人不可推断的时候才使用隐式类型局部变量,靠我们人工可以推断的还是不建议使用,显式的声明变量类型可以增强代码的可读性,这是一个好的编程习惯,不要因为C# 3.0提供了这样的特性就大用而特用。)

虽然.NET Framework隐式类型变量var有利有弊,但笔者个人认为,如果将动态语言转换成C#语言,可以考虑使用var来定义变量。这是因为动态语言没有类型,而要将其转换成强类型的C#语言,就必须给变量指定个类型,但事先确定类型是很费劲的,不如将其指定成var,再由C#编译器去确定变量的具体类型。那么如果在转换的过程中,发现动态语言的变量改变了类型,该怎么办呢?这个可以使用“匿名类”来解决这个问题。

以上就是.NET Framework隐式类型变量的相关概念是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: .NET Framework隐式类型变量的相关概念是什么

本文链接: https://www.lsjlt.com/news/291595.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .NET Framework隐式类型变量的相关概念是什么
    本篇文章给大家分享的是有关.NET Framework隐式类型变量的相关概念是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。.NET Framework中有一种新的特性,叫...
    99+
    2023-06-17
  • .NET Framework Lambda表达式的相关概念是什么
    这篇文章将为大家详细讲解有关.NET Framework Lambda表达式的相关概念是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。.NET Framework应用程序为我们提供了多种...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作