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,利用这点比检查异常要简单得多!

  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/captionAmazing/p/14882219.html
Copyright © 2011-2022 走看看