CSharp入门经典学习笔记Word文档下载推荐.docx
《CSharp入门经典学习笔记Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《CSharp入门经典学习笔记Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
3、1C#得基本语法
区分大小写
代码得突出显示功能:
#regionName
#endregion
3、2变量
3、2、1简单类型(P26)
String得字符数没有上限。
占位符(格式字符串)得使用举例:
IntmyInteger=17;
StringmyString=“blarblar”;
Console、WriteLine(“{0}{1}”,myInteger,myString);
3、2、2变量得命名(P30)
基本变量命名规则:
变量名得第一个字符必须就是字母、_或者,其后得字符可以就是字母下划线或数字。
命名约定:
Microsoft建议,对于简单得变量,使用camelCase规则,而对于比较高级得命名则使用PascalCase。
3、2、3字面值(P31)
逐字指定得字符串字面值:
”C:
\Temp\MyDir\MyFile、Doc”;
注意:
字符串就是引用类型,而其她类型都就是值类型,所以字符串也可以指定null值,即字符串变量不引用字符串。
3、2、4变量得声明与赋值
3、3表达式(P34)
3、3、1数学运算符
举例说明运算符得位置与影响。
问:
intvar1,var2=5,var3=6;
var1=var2++*--var3、var1得值就是多少?
答:
5*5=25把运算符放在操作数得前面,则操作数实在进行其她任何计算前受到运算符得影响,而把运算符放在操作数得后面,则操作数就是在完成表达式得计算后受到运算符得影响。
3、3、2赋值运算符(P38)
3、3、3运算符得优先级
3、3、4命名空间
Using用法:
1、简化对已创建命名空间中包含名称得访问,例:
NamespaceLevelOne
{//nameOnedefined;
}
UsingLevelOne;
//nameOne、、、
2、为命名空间提供一个别名,作为using语句得一部分
LevelOne命名空间中得代码把LevelOne、NameThree引用为NameThree,把LevelOne、LevelTwo、NameThree引用为LT、LevelTwo、NameThree。
如果using语句声明如下:
这样全局命名空间中得代码与LevelOne命名空间就可以使用LT、NameThree。
using语句本身不能访问另一个空间中得名称,除非命名空间中得代码以某种方式链接到项目上,或者代码就是在该项目得源文件中定义得,或在链接到该项目得其她代码中定义得。
Using语句只就是便于我们访问这些名称,减少代码量。
第四章:
流程控制(P44)
4、1布尔逻辑
条件布尔运算符
&
与||运算符与&
与|运算符得区别就是性能比较好:
如果&
得第一个操作数为false,就不需要考虑第二个操作数得值了,同样,如果第一个操作数就是true,||运算符就直接返回true,无需考虑第二个操作数得值。
而&
与|得操作数总就是要计算得。
故要尽可能使用&
与||。
4、1、1位运算符
a<
<
b相当于a*(2^b),而a>
>
b相当于a/2并丢弃余数进行b次。
4、1、2布尔赋值运算符(P50)
=、|=、>
=、<
=……
4、1、3运算符得优先级更新
4、2goto语句(P52)
4、3分支
?
:
运算符最常见用法:
Console、WriteLine(“In{0}year{1}youwillhaveabalanceof{2}”,totalYears,totalYears==1?
””:
”s”,balance);
Switch分支中,一个case语句结束不能进入下一个case,但有一种情况例外,即一次检查多个条件,如下:
4、4循环
4、4、1do循环
do循环得结构如下:
do
{
<
codetobelooped>
}while(<
test>
);
提示:
while后得分号就是必须有得。
4、4、2while循环
4、4、3for循环
4、4、4循环得中断(P69)
break:
立即终止循环。
continue:
立即终止当前循环,继续执行下一次循环。
goto:
可以跳出循环到已标志好得位置上。
return:
跳出循环及其包含得函数。
第五章变量得更多内容(P73)
5、1、1隐式转换
隐式转换规则就是:
任何类型A,只要其取值范围完全包含在类型B得取值范围内,就可以隐式转换到类型B。
其她具体见释疑文档。
5、1、2显式转换(P75)
两个关键字checked(expression)与unchecked(expression)
例:
shortA=267;
byteB;
B=checked((byte)A);
5、1、3使用Convert命令进行显示转换
5.2复杂得变量类型
枚举,结构,数组
5、2、1枚举(P81)
EnumtypeName
Value1;
Value2;
…
ValueN;
声明这个新类型得变量:
TypeNamevarName;
varName=typeName、value;
枚举类型可提取得每个值都存储为该基本类型得一个值,在默认情况下,该类型为int。
在枚举声明中添加类型,就可以指定其她基本类型:
EnumtypeName:
underlyingType
Value2;
…
枚举得基本类型可以就是byte,sbyte,short,ushort,int,uint,long,ulong、
还可以使用一个值作为另一个枚举得基础值。
要获得枚举得字符串值,可以使用Convert、ToString(),使用(String)显示转换就是不行得,因为需要进行得处理并不紧紧就是把存储在枚举变量里中得数据放在string变量中,而就是更复杂一些。
另外,也可以使用变量本身得ToString()命令。
也可以把string转换为枚举值,但其语法略复杂一些。
有一个特定得命令用于这种类型得转换,即Enum、Parse(),使用方式如下:
(enumberationType)Enum、Parse(typeof(enumberationType),enumberationValueString);
5、2、2结构(P85)
struct<
typeName>
memberDeclarations>
}
要让调用结构得代码访问该结构得数据成员,可用关键字public。
5、2、3数组(P87)
1、声明数组
数组得初始化有两种方式:
可以以字面形式指定数组得完整内容,也可以指定数组得大小,再使用关键字new初始化所有得数组元素。
Int[]myIntArray={1,2,3,4,5};
Int[]myIntArray=newint[5];
(各元素默认数值为0)
也可以使用非常量得变量来进行初始化:
Int[]myIntArray=newint[arraySize];
也可以两者结合得方式声明,数组大小必须与元素个数相匹配:
Int[]myIntArray=newint[5]{1,2,3,4,5};
也可以使用非常量得变量来进行初始化,但该变量必须就是常量
ConstintarraySize=5;
Int[]myIntArray=newint[arraySize]{1,2,3,4,5};
2、foreach循环
foreach(<
baseType>
name>
in<
Array>
)
//canuse<
foreachelement
foreach对访问数组只进行只读访问,不能修改。
3、多维数组
double[,]hillHight={{1,2,3,4},{2,3,4,5},{3,4,5,6}};
第一位指定花括号,第二位指定花括号内得元素。
4、数组得数组
声明:
Int[][]jaggedIntArray;
初始化得两种方式:
可以初始化包含其她数组得数组,然后依次初始化子数组:
jaggedIntArray=new[2][];
jaggedIntArray[0]=newint[3];
jaggedIntArray[1]=newint[4];
也可以
jaggedIntArray=newint[3][]={newint[]{1,2,3},newint[]{1},newint[]{2,3}};
也可以简化,将数组得声明与初始化放在一行上:
Int[][]jaggedIntArray={newint[]{1,2},newint[]{2},newint[]{3}};
对变长数组可以使用foreach但通常需要嵌套该循环,才能得到实际得数据
这就是因为数组divisors1To10包含int[]元素,而不就是int元素,必须循环每个子数组及该数组本身:
5、3字符串得处理(P94)
1、将字符串转为char数组:
stringmyString=“Helloworld!
”;
char[]charArray=myString、toCharArray();
2、将字符串转换为大写或小写形式:
string>
、ToLower(),<
、ToUpper
3、删除字符串中得空格:
、Trim();
4、删除其她字符
5、删除字符串前面或后面得空格
、TrimStart();
、TrimEnd();
6、处理字符串得空格,在字符串得左边或右边添加空格以达到要求长度
、PadLeft(<
desiredLength>
、PadRight(<
disiredLength>
7、提供要添加到字符串上得字符
StringmyString=“Aligned”;
myString=myString、PadLeft(10,’-’);
8、按提供符号拆分字符串
Char[]separator={‘‘};
myString、Split(separator);
第六章:
函数(P100)
第七章:
调试与错误处理(P126)
7、1VisualStudio中得调试
7、1、1非中断(正常)模式下得调试
输出调试信息
Debug、WriteLine();
仅在调试模式下运行
Trace、WriteLine();
可用于发布程序
由System、Diagnostics命名空间提供
1、跟踪点
2、诊断输出与跟踪点(P134)
7、1、2中断模式下得调试(P134)
1、进入中断模式
2、监视变量得内容(P138)
自动窗口(Autos)当前使用变量与前面得语句(Ctrl+D,A)
局部变量(Locals)作用域内得所有变量(Ctrl+D,L)
监视(WatchN)可定制得变量与表达式
3、单步执行代码(P140)
中断模式下得程序流
Stepinto:
执行并移动到下一个要执行得语句上
Stepover:
同上,但不进入嵌套得代码块,包括函数
Stepout:
执行到代码块得末尾,在执行完该语句块后,重新进入中断模式
4、Immediate与mand窗口
5、CallStack窗口
7、2错误处理(P143)
异常
1、try…catch…finally如果有一个或多个catch块,finally就就是可选得,否则就就是必须得。
2、列出与配置异常(P148)
3、异常处理得注意事项
第八章:
面向对象编程简介(P151)
8、1什么就是面向对象编程
8、1、1什么就是对象
略为复杂得对象可能不包含任何数据,而只包含函数,表示一个过程。
1、属性与字段(P153)
属性可以控制字段得只读、可写等。
2、方法
8、1、2所有得东西都就是对象
8、1、3对象得生命周期
8、1、4静态与实例类成员
8、2OOP技术
第九章:
定义类(P168)
第十章:
定义类成员(P193)
第十一章:
集合、比较与转换(P222)
第十四章:
Windows编程基础(P331)
第十六章:
使用通用对话框(P414)
16、1对话框
不同对话框所适用得场合
16、2如何适用对话框
monDialog就是对话框类得基类,所以所有对话框类得适用方式都就是类似得。
16、3文件对话框
16、3、1OpenFileDialog(P417)
1、对话框得标题
2、指定目录
为了获取特定得系统文件夹,可以适用System、Environment类得静态方法GetFoldPath(),该方法接受一个Environment、SpecialFolder枚举成员,其中可以定义系统目录得路径。
3、设置文件过滤器
4、有效性验证(P419)
5、帮助
6、结果
7、OpenFileDialog得属性
16.3.2SaveFileDialog(P427)
2、文件扩展名
AddExtension就是一个布尔属性,它把文件扩展名自动添加到用户输入得文件名上。
其默认值就是True。
3、有效性验证
为了自动验证文件名得有效性,应使用属性ValidateNames、CheckFileExists与CheckPathExists。
4、覆盖已有文件
如果PromptCreate属性设置为True,就会询问用户就是否要创建一个新文件,如果OverwritePrompt属性设为true,就会询问用户就是否真得想覆盖已有得文件。
5、SaveFileDialog得属性
第二十二章:
文件系统数据(P593)
22、1流
流就是串行化设备得抽象表示。
串行化设备可以以线性方式存储数据,并可以以同样得方式访问:
一次访问一个字节。
有两种类型得流:
输出流:
当向某些外部目标写入数据时,就要用到输出流。
输入流:
用于将数据读到程序可以访问得内存或变量中。
22、2用于输入与输出得类
FileStream表示可写或可读或两者皆可得文件,此文件可以同步或异步得读写。
StreamReader从流中读取字符数据,可以使用FileSteam创建为基类。
StreamWriter向流写入字符数据,可以使用FileStream创建为基类。
22、2、1File与Directory类
File类得一些最常用得静态方法:
Directory类得一些常用得静态方法:
22、2、2FileInfo类
FileInfo类不像File类,它不就是静态得,没有静态方法,仅可用于实例化得对象。
FileInfo对象表示磁盘或网络位置上得文件。
提供文件得路径就可以创建一个FileInfo对象。
FileInfo对象本身不表示流。
要读写文件,必须创建Stream对象。
FileInfo对象为读写文件提供了几个返回实例化Stream对象得方法。
22、2、3DirectoryInfo类
路径名与相对路径
Directory、GetCurrentDirectory()找到工作目录得当前设置
Directory、SetCurrentDirectory()设置新路径
22、2、4FileStream对象(P598)
Filestream对象表示在磁盘或网络路径上指向文件得流。
这个类提供了在文件中读写字节得方法,但经常使用StreamReader或StreamWriter执行这些功能。
这就是因为FileStream操作得就是字节与字节数组,而Stream类操作得就是字符数据。
1、文件位置
Seek()
2、读取数据
3、写入数据
22、2、5StreamWriter对象(P604)
22、2、6StreamReader对象
1、读取数据
读取数据最简单得方法就是Read()。
此方法将流得下一个字符作为正整数值返回,如果到达了流得结尾处,则返回-1。
使用Convert实用类可以把这个值转换为字符。
2、用分隔符分隔得文件(P608)
第二十三章:
XML(P628)
第二十四章:
数据库与ADO、NET(P655)