CSharp入门经典学习笔记.docx
- 文档编号:2978202
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:17
- 大小:429.90KB
CSharp入门经典学习笔记.docx
《CSharp入门经典学习笔记.docx》由会员分享,可在线阅读,更多相关《CSharp入门经典学习笔记.docx(17页珍藏版)》请在冰豆网上搜索。
CSharp入门经典学习笔记
第一章:
C#简介
1.1什么是.NetFramework
特点:
不限操作系统,不限应用程序类型,不限访问语言(通用类型系统,CommonStyleSystem,CST)。
包括:
代码库、.Net公共语言运营库(CommonLanguageRuntime,CLR)←(负责管理用.Net库开发所有应用程序运营)
MISL和JIT
编译过程:
C#代码→Microsoft中间语言(MicrosoftIntermediateLanguage,MSIL)由VS完毕→本机代码由Just-In-Time编译器即JIT完毕
程序集
编译应用程序时,所创立MSIL代码存储在一种程序集中,程序集涉及可执行应用程序文献(.exe)和其她应用程序使用库(.dll)。
除包括MSIL代码外还包括元信息(即程序集中包括数据信息,也称为元数据)和可选资源(MSIL使用其她数据,例如声音文献和图片)。
元信息容许程序集是完全自我描述,不会浮现无法将需要数据添加到系统注册表中状况。
不必把运营应用程序所需要所有信息都安装到一种地方。
可以编写某些代码,执行各种应用程序所规定任务。
此时,普通把这些可重用代码放在所有应用程序都访问地方。
在.NetFramework中,这个地方是全局程序集高速缓存(GlobalAssemblyCache,GAC)。
办法是:
将包括代码程序集放在包括该高速缓存目录下即可。
托管代码
用.NetFramework编写代码在执行时是托管,即CLR管理着运营程序,其方式是管理内存、解决安全性,以及容许进行跨语言调试等。
在C#中,只能编写在托管环境下运营代码,咱们使用CLR托管功能,让.Net自己与操作系统交互。
垃圾回收
提示:
需要许多内存才干运营代码应自己执行这样检查,而不是坐等垃圾回收。
链接
在编译为MSIL语言C#代码不一定包括在单独文献中,可以把应用程序代码放在各种源代码文献中,再把它们编译到一种程序集中,这个过程称为链接。
好处在于解决几种较小文献比解决一种大文献简朴多。
1.2什么是C#
强大语言:
在C#中与C++比较高档功能等价功能(例如直接访问和解决系统内存),只能在标记为“不安全”代码中使用。
类型安全语言:
在类型之间转换时,必要遵守严格规则。
第三章:
变量和表达式(P22)
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次。
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
{
}while(
提示:
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
{
Value1;
Value2;
…
ValueN;
}
枚举基本类型可以是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
{
}
要让调用构造代码访问该构造数据成员,可用核心字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(
{
//canuse
}
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、将字符串转换为大写或小写形式:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CSharp 入门 经典 学习 笔记