`
tansitongba
  • 浏览: 503429 次
文章分类
社区版块
存档分类
最新评论

C# 4.0的一些新特性

 
阅读更多

vs2010正式版4月12日发布了,前几天我也下了一个,但这几天都没有时间好好试用一下,今天针对C#语言的新特性使用了一下,感觉还不错,有几个新特性和大家分享一下,希望我没有太火星……

一、新关键词——dynamic

在新版本的C#中,dynamic关键词是一个很重要的新特性,现在你可以创建动态对象并在运行时再决定它的类型。而且.net 4.0为CLR加入了一组为动态语言服务的运行时环境,称为DLR(Dynamic Language Runtime动态语言运行时),这使得C#这种静态类型语言可以在 .NET Framework 中开发动态语言并为与其它动态语言提供互操作性了。DLR架构见下图:
DLR架构
关于DLR的更详细信息,可以参考msdn:http://msdn.microsoft.com/en-us/library/dd233052(VS.100).aspx

先来看看dynamic的一个例子:

可能你会说,这个效果,我用object关键字就可以了,干吗加个dynamic?那我们就来讨论一下object与dynamic的区别。
先看如下代码:


这样肯定是通不过编译的,虽然obj存储的是一个整形,但是如果不进行类型转换的话编辑器肯定是不会编译通过的。所以我们就要改成:

但是这样就有个类型安全的问题了,加入我类型不是转换成int,而是string,那么编译器一样可以编译通过,但是运行时就会抛出异常:

由此可见,你要使上面代码正确运行,你必须得正确的进行类型的显式转换,就仅仅因为不这样做的话,编译器不让你通过而已。为了解决这个问题,dynamic由此产生。它告诉编译器:“哥说啥就是啥,你甭跟我废话”。见下例:

这是object和dynamic的其中一个不同。它告诉编译器对象的类型只有在运行时才知道,编译器就不会对其进行干涉。这样你可以少写很多代码。但有一点必须强调一下:dynamic并没有增加或减少危险。当你操作对象时要用到的所有类型检查技巧(例如反射),在动态对象中一样要用到。例如,以下代码在运行时将会抛出异常:

二、可选(或默认)参数

貌似这个特性在C#1.0就已经有很多人问过了,但直到4.0才有。现在你可以在方法定义的时候为参数指定一个默认值。调用方法的时候既可以像平时那样传入参数,也可以直接跳过不传入,这样的话,就使用默认值传到方法里。例如:

值得注意一点的是,可选参数必须放在所有参数的最后。这里就有个问题了,加入我某个方法有两个参数,两个都是可选参数,而我调用的时候只想传入第二个参数,怎么办呢?我们来试试。

但很可惜,编译通不过,这个问题,利用下面的新特性就可以解决了。

三、命名参数

在之前版本的C#中,方法定义的参数顺序必须与方法调用时的参数顺序一致,即方法Method(int i, string s)调用时就必须第一个传入int,第二个传入string,而现在,这个规矩可以被打破了。你可以自己随便什么顺序传入,这也在一定程度上提高了代码的可读性。例子:

这样一来,上面的那个问题就可以迎刃而解了:

四、提高COM的互操作性

基于以上三点新特性,COM的互操作性也被提高了。以后不用再写如下丑陋的代码:

现在只需这么写就搞定了:

顺带一句,这段代码用到了另一个叫做“索引属性”的新特性,更多关于这个特性的信息可以参考http://msdn.microsoft.com/en-us/library/ee310208%28VS.100%29.aspx这个特性只能用于COM互操作上,你不能创建自己的索引属性。

好了,就先分享这么多吧,以后有什么新发现再与大家分享吧~~~

分享到:
评论

相关推荐

    C#4.0的一些新特性

    ### C#4.0的新特性详解 随着Visual Studio 2010的正式发布,C#4.0作为其中的一项重要更新,引入了一系列新的特性,这些特性极大地提升了开发者的编程体验,并增强了C#语言的功能性。本文将详细介绍C#4.0中的两个...

    C# 4.0 的4个新特性

    ### C# 4.0 的四个新特性详解 随着C# 4.0版本的发布,微软为开发者带来了一系列令人兴奋的新功能。本文将详细解析其中的四个关键特性:动态类型支持、并行编程增强、隐式接口实现以及空安全操作符。 #### 一、动态...

    C#4.0语言规范 C#4.0语言规范C#4.0语言规范

    下面将详细介绍C# 4.0的一些核心知识点: 1. **动态类型**(Dynamic Type):C# 4.0引入了动态类型`dynamic`,允许在运行时确定变量的类型。这使得与非C#环境(如IronPython或JavaScript)的交互变得更加灵活,无需...

    C#4.0权威指南

    除了介绍C# 4.0的新特性之外,《C# 4.0权威指南》还涵盖了所有C#的基本知识点和高级主题,确保无论是新手还是有经验的开发人员都能从中受益。它不仅关注语法层面的介绍,更重要的是强调如何正确地应用这些特性来解决...

    全面揭秘 c# 4.0

    《全面揭秘C# 4.0》是一本深入解析C#编程语言第四版的重要书籍,由业界专家撰写,旨在帮助开发者全面理解并掌握C# 4.0的新特性和改进。C# 4.0是.NET Framework的重要组成部分,它带来了许多增强的功能,使得开发更加...

    C#4.0权威指南电子书

    《C#4.0权威指南》电子书中还可能包含与这些主题相关的源代码示例,读者可以通过实践加深对C# 4.0特性的理解。例如,源码可能涵盖了动态类型的应用、多线程和异步编程的实战案例、以及如何利用新的语言特性改进既有...

    C#4.0新特性介绍

    以下是对C#4.0新特性的一些详细介绍。 #### 动态查找 **动态查找**是C#4.0中最显著的新特性之一,它允许开发者在编译时绕过静态类型检查,而在运行时解析方法、运算符和索引器调用、属性和字段访问等。这一特性...

    C#4.0新特性.doc

    除了以上主要特性外,C# 4.0还包含了一些其他改进,比如改进的错误消息、更好的调试体验以及对.NET Framework库的更新,以利用新引入的变性特性。 C# 4.0的这些新特性不仅提高了开发效率,而且扩大了C#的应用范围...

    c# 4.0新特性一览

    C# 4.0是微软开发的面向对象的编程语言C#的重要版本更新,它引入了一系列新特性,旨在提升开发者的生产力和代码的灵活性。在这一版本中,C#开始更加紧密地与动态语言集成,同时也对现有特性进行了增强。 **动态类型...

    c# 4.0新特性详解

    C# 4.0是微软对C#编程语言的一次重大更新,主要引入了一些新的特性,以提升开发者的生产力和语言的灵活性。其中最显著的变化是动态类型支持,通过`dynamic`关键字的引入,使得C#能更好地与其他动态语言如JavaScript...

    c#4.0新特性

    ### C#4.0新特性详解 #### Introduction 简介 自从Microsoft Visual C# 3.0作为Visual Studio 2008的一部分发布以来,已经过去了近一年的时间。在此期间,VS Managed Languages团队一直在致力于开发该语言的下一个...

    C#4.0新特性中文帮助文档

    C#4.0是.NET Framework 4的一部分,它在C#3.0的基础上引入了一些显著的新特性和改进,旨在提高编程效率和灵活性。这个中文帮助文档详细解释了这些新特性,帮助开发者更好地理解和利用C#4.0进行软件开发。 1. **动态...

    C#4.0规范中文版PDF

    总的来说,《C# 4.0 规范中文版》详细介绍了这些关键特性和更多内容,是学习和掌握C# 4.0编程的基础教程。通过阅读这本书,读者可以深入了解C#语言的核心概念,提高编程技能,并能更好地利用C#进行高效、可靠的软件...

    C#4.0图解教程个人笔记

    在C# 4.0版本中,引入了许多新特性和改进,旨在提高开发效率和灵活性。 1. **动态类型(Dynamic Type)**:C# 4.0引入了`dynamic`关键字,允许在运行时解析变量的类型,这对于与非.NET框架交互,如JavaScript库或...

    C#4.0新特性源码

    这个名为"C#4.0新特性源码"的压缩包很可能是微软官方提供的示例代码,用于帮助开发者理解和实践这些新特性。下面,我们将详细探讨这些关键特性。 1. **动态类型(Dynamic Type)**:C# 4.0引入了`dynamic`关键字,...

    C#4.0权威指南 源代码

    C# 4.0是.NET Framework的重要组成部分,它在C# 3.0的基础上引入了许多新特性,使得开发者可以编写出更高效、更灵活的代码。以下是C# 4.0的一些核心知识点: 1. **动态类型(Dynamic)**:C# 4.0引入了动态类型,...

    C# 4.0完全参考手册

    C# 4.0引入了许多新特性,增强了语言的灵活性和表达能力。其中包括: 1. **动态类型(Dynamic)**:动态类型允许在运行时确定变量的类型,这使得与动态语言如Python或JavaScript的交互更为便捷。 2. **命名参数和可...

    C#4.0权威指南.pd

    内容全面,不仅重点讲解了C# 4.0的所有新特性,而且对C#的所有知识点的原理、用法和要点都进行了全面的讲解和深度的分析,广度和深度完美结合。《C# 4.0权威指南》注重实践,包含大量有价值的示例代码,可操作性极强...

Global site tag (gtag.js) - Google Analytics