zoukankan      html  css  js  c++  java
  • C#入门经典5

    2020/8/30

    1、给字符串变量赋值时,如果字面值包含引号,需要使用转义序列,例如:

    myString = “”myInteger” is “;

    又如 是换行,\则输出一个。

    2、可以使用using语句为名称空间提供一个别名:例如 using LT = LevelTwo;

    3、可以使用#region和#endregion来创建代码块区域,方便阅读。

    4、三元运算符:<test> ? <resultIfTrue> : <resultIfFalse>

    5、格式化代码:Ctrl + E, D

    6、循环的中断:break(立即终止);continue(终止当前循环,继续执行下一次循环);goto(可以跳出循环,最好不要用,因为不易阅读和理解);return(跳出循环及其包含的函数)。

    7、显式类型转换时,可以使用checked()和unchecked()关键字检查溢出。称为表达式的溢出检查上下文。但使用Convert时使用的是checked,而且无法再使用unchecked.

    8、数组是一个变量的索引列表,存储在数组类型的变量中。

    9、for循环和foreach循环的区别是foreach循环是对集合内容进行只读访问,所以不能改变任何元素的值。

    10、一维数组理解成一条线,二维数组理解成一个表格,三维数组理解成为一个立方体。

    11、char类型实际存储的是与ushort一样的数字表示的Unicode字符集中的一个字符。

    12、锯齿数组(jagged array)其中每个元素都是另一个数组。注意这些数组都必须有相同的基本类型。

    13、String.Format(“{0:c}”, value) c表示本地货币(x表示十六进制数;d和D对应短日期和长日期;P或Pn用于打印一个百分数,有n位小数)。

    14、关键字params可以用于定义参数数组,可以使用个数不定的参数调用函数。必须是函数定义中的最后一个参数:static int SumVals(params int[] vals){ ......}

    15、使用ref关键字为函数通过“引用”传递参数。使用out关键字指定输出参数。

    16、重载函数:函数的签名与参数有关系,与返回值没有关系;

    17、委托(delegate)是一种可以把引用存储为函数的类型。委托类型引用与定义的委托有相同返回类型和参数列表的函数。

    18、当VS显示的信息遮挡代码时,可以使用Ctrl来使其透明。

    19、Debug.WriteLine与Trace.WriteLine前者用于调试模式,后者用于发布程序。

    20、C#结构化异常(SEH)处理try... catch ... finally: 也可以只有try块和finally块,而没有catch块,或者有一个try块和好几个catch块。如果有一个或多个catch块,finally块就是可选的,否则就是必需的。

    21、在UML(Unified Modeling Language)中,方法的参数前面out和intout大致对应C#关键字out和ref;in大致对应于C#中不使用这两个关键字的情形。

    22、静态成品(也称为共享成员,尤其VB用户常使用这个术语)。在UML中类的静态成员用下划线表示。成员前面的加号表示公共,减号表示私有成员。

    23、在UML中,在对象上实现的接口用“棒棒糖”语法来表示。

    24、抽象类在UML中以斜体显示(有时它们的方框有一个短横线)。

    25、与类不同的是,接口可以继承多个基接口(与类可以支持多个接口的方式类似)。

    26、可以使用internal访问修饰符显示指定当前类只有当前项目中的代码才能访问。另外,使用public 指定类是公共的,其他项目中的代码可以访问。

    27、抽象类使用abstract;密封类使用sealed 关键字。如果继承了一个抽象类,必须实现所有抽象成员(除非派生类也是抽象的)。

    28、编译器不允许派生类的可访问性高于基类。

    29、析构函数由带有~前缀的类名(与构造函数的相同)来声明。

    30、类可以实现ICloneable接口,来提供类定义中的深度复制功能。

    31、.NET Framework中公共字段,方法以及属性以PascalCasing形式命名,私有字段通常使用camelCasing来命名。

    32、字段使用readonly关键字,表示只能在执行构造函数的过程中或者初始化赋值语句赋值。

    33、const关键字用来创建一个常量。与readonly的区别是const成员是静态的。

    34、extern表示方法定义放在其他地方。就是可以项目外部提供方法的实现代码。这是一个高级论题。

    35、override sealed可以指定在派生类中不能对这个方法作进一步的修改。

    36、属性可以使用virtual, override, abstract 关键字。访问器可以有自己的可访问性。

    37、可以使用类图添加字段,属性和方法,但此方法不能提供完整的实现代码。如果访问修饰符之类的忘却了,可以用这个方法来写代码。

    38、重构:表示使用工具修改代码,而不是手工修改。

    39、自动属性的唯一限制是它们必须包含get和set存取器,无法使用这种方式定义只读或只写属性。

    40、当继承的公共成员不像预期的那样工作时,可以使用new关键字显式隐藏它。另外,使用override重写基类方法,基类类型(使用多态)调用也是重写后的实现代码。

    41、可利用base关键字调用重写或隐藏的基类方法。

    42、this关键字引用当前的对象实例;另一个用法是限定本地类型的成员。

    43、要隐藏基接口的成员,可以用new来定义。

    44、部分类定义使用partial关键字。

    45、部分方法如果没有方法体,会被编译器删除掉。设计器会声明部分方法,由用户根据具体情形选择是否实现它。

    45、使用方便的类图工具使工作更便于完成。

    46、索引符(indexer)是一种特殊类型的属性,可以把它添加到一个类中,以提供类似于数组的访问。

    47、迭代器,它是一个代码块,使用yield关键字选择要在foreach循环中使用的值。其语法是yield return  <value>;

    48、使用yield break; 来中断信息返回foreach循环的过程。

    49、取余运算用%

    50、对象深复制:使用.NET Framework的标准方式,实现ICloneable接口,该接口有一个方法Clone(); 在比较复杂的对象系统中,调用Clone()是一个递归过程。

    51、封箱(boxing)是把值类型转换为System.Object类型,或者转换为由值类型实现的接口类型。拆箱(unboxing)是相反的转换过程。

    52、is运算符并不是说明对象是某种类型的一种方式,而是可以检查对象是否是给定类型,或者是否可以转换为给定类型,如果是,这个运算符就返回true。

    53、IComparable和IComparer接口是比较对象的标准方式。差别前者在比较的类中实现,可以比较该对象和另一个对象;后者在一个单独的类中实现,可以比较任意两个对象。

    54、System.Collections中的类Comparer提供了IComparer接口的默认实现方式。

    55、重载转换运算符使用implicit operator或者explicit operator关键字。

    56、as运算符如果转换失败,不会产生异常,而是返回null,利用这点比检查异常要简单得多!

  • 相关阅读:
    第三讲:增长全局观
    搭建安卓环境
    ~~
    天气阴
    天气晴
    Spark性能优化指南——高级篇
    Ceph Jewel 10.2.3 环境部署
    《你只是看起来很努力》--读书笔记
    博客园基础环境配置
    Spark 1.3.0 单机安装
  • 原文地址:https://www.cnblogs.com/captionAmazing/p/14882219.html
Copyright © 2011-2022 走看看