zoukankan      html  css  js  c++  java
  • C#高级编程第9版 第二章 核心C# 读后笔记

    System命名空间包含了最常用的.NET类型。对应前面第一章的.NET基类。可以这样理解:.NET类提供了大部分的功能,而C#语言本身是提供了规则。

    pseudo-code,哈哈,秀逗code。伪代码。

    必须初始化变量才能编译,否则报错。有些情况下,没有显示初始化,会被编译器默认为0去编译。

    实例化一个对象需要用new关键字。

    类型推断使用var 关键字。 var i= 0; 系统会推断出 i 为C#的int类型,为.NET的System.Int32类型。

    for while或类似语句中声明的局部变量存在于该循环体内。

    在类级别定义的变量j和在类的下级方法中定义的变量j,编译器可以识别出这个重名,调用类级别的时候,需要用Class.j,方法中则直接用j,实例中就用this.j的形式。

    const int a= 100;这个就是常量,不会再变化了。必须在声明时初始化。

    C#是分为值类型和引用类型,大多数高级语言都是这样分的。值类型存储在堆栈中,引用类型存储在托管堆上。

    引用类型设置为null,表示不引用任何对象。

    把基本类型定义为值类型,其他类型定义为引用类型,是为了达到最佳性能。如果自己定义的类型定义为值类型,就应该把他声明为一个结构。

    C#有15个预定义类型,13个是值类型,2个是引用类型(string object)。

    16进制的整型需要0x前缀, long x = 0x12ab;

    double的精度比float大一倍(15位)。

    decimal类型表示精度更高的浮点数。decimal类型不是基本类型,计算时使用该类型会有性能损失。

    object类型是C#中的根类型,所有内置类型和用户定义的类型都是从object中派生。

    string是引用类型,string与一般的引用类型有区别,改变一个字符串,实际上是创建一个全新的字符串,其他引用不会修改值。

    流控制语句-条件语句

    1、if else
    2、if
    3、if else if
    4、switch
      switch (intergerA)
      {
        case 1:
        case 2:
          Console.WriteLine();
        default:
      }
    注意case后面的值必须是常量表达式,不允许是变量。
    case 的子句为空,就会跳转到下一条case上,这样就可以用一条语句处理多个case。case后面的值不能相同。

    流控制语句-循环语句
    1、for循环 。在执行下一次迭代前,测试是否满足某个条件,语法是:
    for (1-initializer; 2-condition; 4-iterator)
      3-statement(s)
    将执行顺序表上序号。1234的顺序。
    2、while循环。while和for一样是预测试循环。
    while(condition)
      statement(s);
    while循环不知道重复的次数,这点与for不同。
    3、do...while循环。至少会执行一次循环体。
    do
    {
      statement(s);
    }while(condition);
    4、foreach循环。迭代集合中的每一项。
    foreach (int temp in arrayInts)
    {
      Console.WriteLine(temp);
    }
    注意foreach循环不能改变集合中各项(上面temp)的值。如果要改变值,就应使用for循环。

    流控制语句-跳转语句
    C#提供了很多可以立即跳转到程序中另一行代码的语句,在此,先介绍goto语句。
    1、goto语句。
    goto Lable1;
      Console.Write();
    Lable1:
      Console.WriteLine();
    goto语句有两个限制。不能跳转到像for循环这样的代码块中,也不能跳出类的范围,不能退出try catch块后面的finally块。一般情况下goto是不用的。
    2、break语句。退出for,foreach,while,do while 循环,该语句会执行循环后面的语句。
    3、continue语句。类似与break,也必须在for,foreach,while,do while 循环中使用。但他只是退出循环的当前迭代,不是退出循环。
    4、return语句。退出类的方法,把控制权交给方法的调用者。如果方法有返回类型,return必须返回值。

    枚举

    枚举是用户定义的整数类型。枚举不会造成性能损失。

    名称空间

    一般的层次结构Company.Project.SystemSection。是组织关系,不是物理连接。与C++不一样。
    using就可以引用了,都知道。
    命名空间,给命名别名。使用:using alias = NameSpaceName;调用时候使用::,    alias::ClassName.xxxx ;
    Main()方法是C#的开始执行处。必须是类或结构的静态方法,并且返回类型必须是int或者void
    多个main方法,可以用/main编译法。  csc DoubleMain.cs /main:Wrox.MathExample
    通过命令行传参数 ArgsExample /a /b /c      方法名是public static int Main(string[] args)

    控制台也可以使用格式输出{n,w},n是参数索引,w是宽度值.Console.WriteLine("{0,4}+{1,4}:"i,j);
    控制台输出也可以使用格式字符串。比如:Console.WriteLine("{0,9:C2}",i);如果i是940.23m,就会显示 $940.23。具体可以见格式字符串表。主要有CDEFGHPX几种。还有其他的
    最后一个控制台技巧是占位符#,书中原话没有看懂,如下:
    double d = 0.234;
    Console.WriteLine("{0:#.00}",d);
    其结果为.23,因为如果在符号#的位置上没有字符,就回忽略该符号#,如果在0的位置上有一个字符,就用这个字符代替0,否则就显示0。这块没有弄懂

    注释符号/* */如果是在双引号的字符串变量中,会被当成普通字符串的。
    XML文档,写在代码中,会创建XML格式的声明,很好用。类的说明,属性和参数的含义。系统的方法基本都会有。我们自己也尽量写。编译时也可以输出出来。用如下语句:
    csc /t:library /doc:MathLibrary.xml MathLibrary.cs

    C#预处理器指令,这里大部分都没有用过,需要动手并详细考虑其用处。主要有#define #undef #if #elif #else #endif #warning #error #region #endregion #line #pragma

    C#的标识符

    可以用Unicode字符如  u005fIdentifier  这个等价于  _Identifier.

  • 相关阅读:
    babel
    >/dev/null
    write to file
    fortran 77 example
    mix c with fortran
    automake
    Rockie's Android Porting Guide(4)——Add SD card to your system
    android平台初步分析
    Rockie's Android Porting Guide(4)——Add SD card to your system
    Android(1.5) 开机图片/文字/动画 修改
  • 原文地址:https://www.cnblogs.com/tomkillua/p/4308160.html
Copyright © 2011-2022 走看看