C#入门经典第五版 笔记

第一章 绪论
.net framework是Microsoft为开发应用程序而创建的平台
为执行C#代码,需将其转化为目标操作系统能理解的语言 即本机代码,此类转换称为编译代码,由编译器执行。但在.net下是将代码编译为通用中间语言CIL代码(独立于计算机,操作系统和CPU)JIT just-in-time编译器 CIL代码仅在需要时才编译
所创建的CIL代码存储在程序集中,包括可执行程序exe,以及其他程序使用的库dll
托管代码 CIR以管理内存,处理安全性以及允许跨语言调试等方式管理应用程序
垃圾回收 释放不使用的内存
1 使用C#编程
2 把代码编译为CIL 存储在程序集中
3 JIT编译器编译为本机代码
4 在托管的CLR环境下运行本机代码
可把应用程序代码放在多个源代码中,再编译到程序集,此过程为链接

使用C#开发程序比CPP简单
C#代码比CPP略长,因为C#是类型安全的语言

C# 编写Windows程序,如Microsoft office,使用.net 的Windows forms模块可简便生成之
是一个控件库,可建立UI,还可使用WPF Windows presentation foundation 建立之
Web 程序 asp.net web服务 分布式应用程序

要点
.net 包括一个公共类型系统CTS和一个公共语言运行库CLR OOOP面向对象编程,通常包含托管代码,托管代码的内存管理由net运行库处理,包括垃圾回收
Net编写的程序先编译为CIL,执行时JIT将其编译为本机代码,编译后,把不同的部分链接到包含CIL的程序集中
C#是包含在net中的语言,可编写任意应用程序,如网站和windows
集成开发环境IDE

三 变量和表达式
1 不考虑代码中的空格,回车符或tab字符,皆视为空白字符
2 每个语句皆以分号来结束,代码块以{}界定
3 注释方式 /——————/ 或者//
4 区分大小写
5 #region 和#endregion关键字可展开和折叠代码

变量关系到数据的存储,
;类型和变量名
整数类型;浮点数float,double,decimal;char,bool,string
Mystring=’ \’myinteger \’ is ’使用序列\转义双引号
\n 换行符
Console.WriteLine(‘{0} {1}.’,myString,myInteger); //{0} {1}占位符
变量的命名 第一个字符必须是字母 下划线或@,其后可以是字母,下划线或数字
转义序列可指定Unicode字符,后跟一个u和一个4位十六进制值
\’ 等价于\u0027
一元 运算符
var1= + var2; var1=var2
var1 = - var2; var1=-var2
var1=++var2; var1=var2+1 var2递增1
var1=–var2; var1=var2-1 var2递减1
var1=var2++; var1=var2 var2递增1
var1=var2–; var1=var2 var2递减1
++ 总使得操作数+1

    • 类似
      二元 运算符中仅+可以处理字符串类型变量
      var1=var2 +var3 var1的值是后两个字符串的连接值
      int var1,var2=5,var3=6
      var1=var2++ * --var3;忽略var2后面的++ 因为是在计算结束才作用,–var3 使得var3=5
      结果是var1=5*5

用户输入与类型转换
string userName;
Console.WriteLine{‘’};
userName=Console.ReadLine();
double firstNumber,secondNumber;
firstNumber=Convert.ToDouble(Console.ReadLine());
赋值运算符
var1+=var2 var1=var1+var2 这类运算符都把var1包括在计算过程
var1-=var2 var1=var1-var2
运算符的优先级

名称空间
使用namespace关键字为花括号中的代码块定义之
若在外部使用命名空间中的名称,就必须写出该名称空间中的限定名称,包括其所有的分层信息 Level.NameOne
Namespace LevelOne
{using LT=LevelTwo ;
//name ‘NameThree’ defined}
Namespace LevelTwo
{//name’NameThree’defined}}
使用using语句为名称空间提供别名 防止冲突
如此LevelOne中的代码可把LevelOne.NameThree引用为NameThree,把LevelTwo. NameThree引用为LT.NameThree
全局名称空间不可使用LT.NameThree
但如此则可以 using LT=LevelOne.LevelTwo

要点
C#区分大小写,以分号结束 以/或/* __*/注释 可隐藏代码块
变量是有名称和类型的数据块
表达式利用运算符和操作数来建立,运算符有3种 一、二、三元,分别操作1/2/3个操作数
运算符有固定的优先级
.net应用程序中定义的所有名称,包括变量名,都包含在名称空间中(采取层次结构),
通常需要根据包含名称的名称空间来限定名称,以便访问

第四章 流程控制
1、布尔逻辑
var1=var2==var3;二元 如相等 则为真
var1=var2!=var3;如后两者不相等 则为真
2、goto语句 goto; 标签如此定义::
3、分支
三元运算符
String resultString=(myInteger<10)?’Less than 10’:’Greater than 10’
如果myInteger<10 则将第一个字符串赋值给resultString 大于则第二个
if语句
switch语句 case需为常数值 一种方法是提供字面值 case 1:
另一种是使用常量 声明常量需指定变量类型和关键字const,同时赋值const int intTwo=2;
循环
1、do 循环
int i=1; do {Console.WriteLine(‘{0}’,i++);}while (i<=10);
2、while 循环 区别于do循环,while循环中的布尔测试是在循环开始时开始而非最后
若测试结果false 则中断
Int i=1;while(i<=10){Console.WriteLine(‘{0}’,i++)};
3、For 循环 执行指定次数
for(int i=1;i<=10;++i){Console.WriteLine(‘{0}’,i);}
for(<初始化计数器变量的一个起始值>;<继续循环的条件>;<循环后执行一个操作>)
4、循环的中断
Break 立即终止循环 continue 立即终止当前循环
goto 可以跳出循环 到已标好的位置上 return跳出循环及其包含的函数
5、无限循环 while(true) {// code in loop}

第五章 变量的更多内容
5.1 类型转换
隐式转换,可让编译器执行转换 A的取值范围在B以内则可以
显式转换,只能在某些情况 convert命令
5.2 枚举 结构 数组
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.
结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体
数组是一个存储相同类型元素的固定大小的顺序集合, 数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。数组大小与元素个数需要相匹配
foreach循环 对数组内容进行只读访问,不能改变任何元素的值
多维数组
5.3 字符串的处理
String可看作char变量的只读数组
String myString=’A string’;char myChar=myString[1];但不可赋值
赋值应用ToCharArray() char[] myChars=myString.ToCharArray();
myString.Length获取元素个数,.ToLower()和.ToUpper

第六章 函数
函数定义组成:两个关键字 static 和 void ;函数名后跟圆括号,如
Write() ;一个要执行的代码块,放在花括号中
Static与面向对象有关,void表明函数没有返回值
当函数返回值时需在函数声明中指定返回值的类型,但不使用关键字,yongreturn关键字结束函数的执行,并把返回值传送
Static double GetVal() {return 3.2;}
函数在其定义中指定接受的参数列表,以及这些参数的类型,在每个函数调用中匹配的参数列表
ref关键字指定参数 对该变量进行的任何改变都会影响用作参数的变量值
用作ref参数的变量有两个限制 首先是非常量 因为函数可能会改变引用参数的值
其次 必须使用初始化过的变量
输出参数 out关键字

作用域 局部变量和全局变量
结构函数
函数重载 不必显式指定使用某个函数,只需提供一个数组参数,就可以根据使用的参数类型执行相应函数
委托

第七章 调试和错误处理
输出调试信息 Debug.WriteLine() Trace.WriteLine()
前者仅在调试模式下运行 后者可用于发布程序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值