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.

时间: 2024-10-09 21:48:50

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

C#高级编程第11版 - 第二章

导航 C# 全版本特性一览 全书目录 第二章 Core C 2.1 C#基础 29 2.2 变量 31 2.2.1 初始化变量 31 2.2.2 类型推断 32 2.2.3 变量的作用域 33 2.2.4 常量 34 2.3 预定义数据类型 35 2.3.1 值类型和引用类型 35 2.3.2 .NET 类型 36 2.3.3 预定义的值类型 36 2.3.4 预定义的引用类型 40 2.4 程序流控制 42 2.4.1 条件语句 42 2.4.2 循环 44 2.4.3 跳转语句 47 2.5

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

.NET的CLR把源代码编译为IL,然后又把IL编译为平台专用代码. IL总是即时编译的,这一点的理解上虽然明白.当用户操作C#开发的软件时,应该是操作已经编译好的程序.那么此时安装在客户机上的程序是什么状态呢?如果是已经编译为平台专用代码了. 那么IL的即时编译的优点是体现在哪里?如果安装在客户机上的代码是IL代码.那么就能说通了.这一点可能要在后续的读书中学到. 语言的互操作性,这一点就我所知,应该不会有太多的人在乎.可能是没有接触到这种的项目. F#是函数编程语言.常用于财务和科学应用程序

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

第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of a connection across a computer network,Sockets are often represented internally as simple integers, which identify which connection to use. 套接字是网络通信的

C#高级编程第11版 - 第二十一章

导航 C# 全版本特性一览 全书目录 第二十一章 Tasks and Parallel Programming 21.1 概述 459 21.2 Parallel 类 460 21.2.1 使用Parallel.For()方法循环 460 21.2.2 提前中断Parallel.For 462 21.2.3 Parallel.For()方法的初始化 462 21.2.4 使用Parallel.ForEach()方法循环 463 21.2.5 通过Parallel.Invoke()方法调用多个方法

C#高级编程第11版 - 第二十章

导航 C# 全版本特性一览 全书目录 第二十章 Dependency Injection 20.1 依赖注入的概念 439 20.1.1 使用没有依赖注入的服务 440 20.1.2 使用依赖注入 441 20.2 使用.NET Core DI 容器 442 20.3 服务的生命周期 443 20.3.1 使用单例和临时服务 445 20.3.2 使用Scoped 服务 446 20.3.3 使用自定义工厂 448 20.4 使用选项初始化服务 449 20.5 使用配置文件 450 20.6

C#高级编程第11版 - 第二十八章

导航 C# 全版本特性一览 全书目录 第二十八章 Testing 28.1 概述 678 28.2 使用MSTest 进行单元测试 679 28.2.1 使用MSTest 创建单元测试 679 28.2.2 运行单元测试 681 28.2.3 使用MSTest 预期异常 682 28.2.4 测试全部代码路径 683 28.2.5 外部依赖 683 28.3 使用xUnit 进行单元测试 685 28.3.1 使用xUnit 和.NET Core 686 28.3.2 创建Fact 属性 686

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

第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用System.Console执行控制台I/O 使用内部注释和文档编制功能 预处理器指令 C#编程的推荐规则和约定 2.1 第一个c#程序 2.1.1 代码 using System; namespace Wrox { Public class MyFirstClass { static void Ma

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

原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此,我要感谢网易的一个工程师朋友和室友,没有他们,我不会开始真正的学习这本书,希望大家以后开始慢慢进步.废话少说,直接上课后习题了. UNIX高级编程第一章习题答案: 1.1在系统上验证,除根目录外,目录l和l l是不同的. 答:这个验证有很多方法可使用命令ls .cd.vim等,目录.指向当前目录,目录..指

《UNIX环境高级编程(第3版)》

<UNIX环境高级编程(第3版)> 基本信息 原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison-Wesley Professional Computing Series) 原出版社: Addison-Wesley Professional 作者: (美)W. Richard Stevens    Stephen A. Rago 译者: 戚正伟 张亚英 尤晋元 出版社:人民邮电出版社 ISBN:9787