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.

C#高级编程第9版 第二章 核心C# 读后笔记的更多相关文章

  1. C#高级编程第11版 - 第二章 索引

    [1]2.1.1 Hello,World! 1. using static System.Console; // ... WriteLine("Hello World!"); 提前 ...

  2. C#高级编程第9版 第一章 .NET体系结构 读后笔记

    .NET的CLR把源代码编译为IL,然后又把IL编译为平台专用代码. IL总是即时编译的,这一点的理解上虽然明白.当用户操作C#开发的软件时,应该是操作已经编译好的程序.那么此时安装在客户机上的程序是 ...

  3. 《Node.js 高级编程》简介与第二章笔记

    <Node.js 高级编程> 作者简介 Pedro Teixerra 高产,开源项目程序员 Node 社区活跃成员,Node公司的创始人之一. 10岁开始编程,Visual Basic.C ...

  4. Python核心编程第三版第二章学习笔记

    第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of ...

  5. C#高级编程第11版 - 第九章 索引

    [1]9.1 System.String 类 String类中关键的方法.如替换,比较等. [2]9.1.1 构建字符串 1.String类依然有一个缺点:因为它是不可变的数据类型,这意味当你初始化一 ...

  6. javascript高级程序设计第3版——第二章使用javascript

  7. c#高级编程第七版 学习笔记 第二章 核心c#

    第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...

  8. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  9. ASP.NET MVC 4高级编程(第4版)

    <ASP.NET MVC 4高级编程(第4版)> 基本信息 作者: (美)Jon Galloway    Phil Haack    Brad Wilson    K. Scott All ...

随机推荐

  1. laravel学习笔记(二)

    路由 HTTP方法:支持http1.1中所有类型传参方式,get,post,put,delete,options,patch Route::get($url,$callback); 路由参数: Rou ...

  2. swift版本拼图游戏项目源码

    现学现做的第一个swift版本拼图游戏demo 常规模式,对换模式任你选择, 用到了花瓣的API,各种萌妹子~

  3. Linux一些常用小命令

    使用xshell连接虚拟机 rz 上传的linux服务器 sz 从服务器上下载 df 查看磁盘大小 -h du 查看所有磁盘(硬盘)大小(-h 可读  -s统计当前目录的大小)du -sh free ...

  4. uva1614 Hell on the Markets

    贪心部分的理论依据:前i个数可以凑出1-sum[i]的所有整数. 证明:第二类数学归纳,n=1时成立,假设n=k之前所有项都成立,当n=k+1时.sum[k+1]=sum[k]+a[k+1].只需证明 ...

  5. 基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table

    基于VueJS的render渲染函数结合自定义组件打造一款非常强大的IView 的Table https://segmentfault.com/a/1190000015970367

  6. 制作JPEGImages出现的bug

    我用的是下面这个脚本进行改名字: import os import sys path = "/home/bnrc/py-faster-rcnn/data/VOCdevkit2007/VOC2 ...

  7. Opencascade 选择器算法

    算法的阶段 该算法包括预处理和三个主要阶段. 使用深度优先搜索逐层遍历所有对象 . 预处理 计算平截头体及其主要特征的计算. 第一阶段 - 遍历第一级BVH树 在成功构建选择平截头体之后,算法开始遍历 ...

  8. 收集的WEB前端程序员需要的网站整理

    前端学习资源实在是又多又广,在这样的一个知识的海洋里,我们像一块海绵一样吸收,想要快速提高效率,平时的总结不可缺少,以下总结了一些,排版自我感觉良好,推送出来. 一.插件类网站 jQuery插件库:h ...

  9. java对比IO和NIO的文件读写性能测试

    1. NIO采用更接近操作系统执行IO的方式:通道和缓存器:顾名思义,数据源的数据由缓存器通过通道进行传输. 2. 在JDK5之后,原始IO系统底层用NIO进行了优化,这可以通过sun公布的源码中找到 ...

  10. JS数组专题1️⃣ ➖ 数组扁平化

    一.什么是数组扁平化 扁平化,顾名思义就是减少复杂性装饰,使其事物本身更简洁.简单,突出主题. 数组扁平化,对着上面意思套也知道了,就是将一个复杂的嵌套多层的数组,一层一层的转化为层级较少或者只有一层 ...