zoukankan      html  css  js  c++  java
  • C#语言的新特性及相关知识

    .NET各个版本之间的关系
        版本及开发工具和语言
             2002年         2003年           2005年        2006年        2008年
        开发工具     Visual         Visual Studio.Net        Visual Studio      Visual Studio    Visual Studio     

           Studio.Net        2003             2005        2005+扩展      2008     
             2002                      

      语言    C#1.0           C#1.1         C#2.0           没有变化      C#3.0             C#5.0           C#6.0  

          VB.NET(V7.0)      VB.NET(V7.1)      VB.NET(V8.0)               VB.NET(V9.0)   VB.NET(V7.0)      VS2013

      CLR    CLR  V1.0        CLR  V1.1        CLR  V2.0     CLR V2.0       CLR V2.0     CLR4.5      CLR 4.5.1

    C#语言新特性
      (1)自动属性和属性访问器的保护级别
         例如:prublic int ID{get;set;}
      (2)可空类型:允许值类型变量为空.
         语法:Nullable<T>,也可以写成T?,T必须是值类型.
         system.Nullable<T>中的结构体成员
             构造函数:Nullable<T>:初始化Nullable<T>结构体并为其指定值.
             方法:Equals:比较跟传入的对象是否相等
           GetHashCode:返回当前对象值的Hash码.
             GetType:获取当前实例的类型
             GetValueOrDefault:获取对象的值或默认值.
             ToString:以文本字符串的形式返回当前对象的值.
             运算符:Explicit:返回Nullable<T>的值.
             Implicit:创建Nullable<T>对象,然后给其赋值.
             属性:HasValue:当前对象是否有值.
             Value:当前对象的值.

    (3)泛型:泛型的使用可以提高代码的重用率,保护类型安全和提高性能.
             优点:执行速度快,不需要装箱和拆箱,安全(线程安全)
    (4)对象和集合初始化器:
         对象初始化器:由一些成员初始化器组成,包含在花括号中间,用逗号分隔.每个成员初始化器以对象的一个可访问的字段或属性的名字开始的.
             后面跟一个等号,之后是一个表达式,或一个对象,或一个集合初始化器.
         集合初始化器:集合初始化器由一系列包括在花括号之间的元素初始化器构成,元素初始化器之间使用逗号进行分隔,元素初始化器不能是赋值表达式.
    (5)匿名类型:匿名类型一般出现在LINQ的select字句中,用来投影筛选出的数据.匿名类型创建的属性是只读的,不允许包含除了属性以外的成员,不能强制转换为object以外的类型或接口.
    (6)扩展方法:必须是静态类的静态方法(是一种建立在非泛型,非嵌套的静态类中的特殊方法).是针对Landba而来的.
           特点:1.在某些情况下,父类不允许继承,通过扩展方法来实现非继承方法的添加.
            2.在继承关系中,我们通常继承一个对象(包括对象中扩展方法)之后对子类进行扩展写法.
            3.父类指向子类称为逆变,子类指向父类称为协变.
            4.扩展方法的名称如果和类型的成员方法重名,扩展方法永远不会被调用,扩展方法无法修改类型内部的源代码,所以在类型升级后,扩展方法可能会失效.

    (7)匿名方法和Lamdba表达式:匿名方法就是方法中的方法,Lamdba表达式将匿名方法的语法进一步简化.
            Lamdba表达式的语法:(input parameters)=>expression  
           注释:()中表示输入参数,expression表示表达式,运算符"=>"读为goes to.
        
        

  • 相关阅读:
    阶段1 语言基础+高级_1-2 -面向对象和封装_2面向对象思想的举例
    阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
    2-3 【初识组件】顶部 TabBar
    2-2 工程源码文件结构
    Fragment状态保存
    【51单片机】六种亮灯方式
    Hadoop自学笔记(二)HDFS简单介绍
    lvs 负载均衡环境搭建
    [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十一章 属性
    说说nio----1
  • 原文地址:https://www.cnblogs.com/ranfang/p/3517972.html
Copyright © 2011-2022 走看看