首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 正文

把我的爱送给你――C#3.5新特性介绍

    二、告诉C#3.5,我们喜欢它纤细的身材--自动属性(Automatic Properties)

    还记得我们在C#1.1和C#2.0写类的属性时定义的那个小小的私有变量么?甚至有些人还因为私有变量是否应该和属性定义在一起而展开了争论。那么,现行社会流行的"减肥"这个词也可以应用到我们的程序代码上来。

    C#3.5为我们提供了自动属性(Automatic Properties),看如下代码:

   


    
    很奇怪么?get和set关键字均没有我们以前所熟悉的return value;和_privateField=value;这样的字眼。事实上,这就是善解人意的编译器为我们提供的又一项新功能--自动属性。编译器会为我们定义的Name属性自动生成一私有变量来保存其值。于是,我们原来需要至少三行才能完成的代码现在仅需一行便轻松完成了。

    不过,它有自身的局限性,比如说不能在用自动属性定义的属性中加逻辑判断,get和set必须成对出现等。然而,笔者相信并非我们所有的属性均要加上逻辑判断吧?那么,就请去尝试自动属性为我们带来的便利。

    三、奇怪的"=>"符号--lambda表达式

    习惯C#编程的您在C#2.0及其以前见到过"=>" 这个符号么?这又是一新特性,我们可以将它读作"lambda表达式"。

    C# 2.0 通用使用匿名方法引入了"传递指针到特定代码"作为参数的功能。这是一个功能强大的概念,但是这种方式您实际传递的是方法的一个指针,而不是代码块。那个引用指向编译时生成的强类型代码。使用泛型,您可获得更大灵活性,但是对泛型类型难以应用标准操作符 。C# 3.0 引入 lambda 表达式,它允许使用更简练的语法来定义匿名方法。

    看如下代码片断:

   


    
    且不说其他部分意义,单来看我们.Where括号之中的部分,c=>c.Address==City.Heze这段代码,我们可以将它理解为,给定c,返回c.Address==City.Heze的记录集,此处就是lambda表达式的应用之一,它广泛应用于我们下期即将介绍的LINQ(Language Integerated Query)中。

上一页  [1] [2] [3] [4] 下一页

【责编:Stephen】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航