1、.NET与C#
A、.NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。
B、C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。
2、.NET能做什么?
A、桌面应用程序 WinForm。
B、Internet应用程序 ASP.NET。
C、手机开发 WP7。
3、IDE
A、Visual Studio 用于开发WinForm、ASP.NET Web应用程序、XML、WEB Service、移动应用程序。
B、Visual Studio2002 对应.Net1.0
Visual Studio2003 对应.Net1.1
Visual Studio2005 对应.Net2.0
Visual Studio2008 对应.Net3.x
Visual Studio2010 对应.Net4.x
C、MSCN的全称是Microsoft Developer Network。这是微软公司面向软件开发者的一种信息服务。
4、Visual Studio介绍
A、解决方案中可以包含多个项目,项目中可以包含多个程序文件。
B、.cs文件的基本结构,命名空间包含类,类包含方法。
Using System; –>引用命名空间
Namespace Dragon –>定义一个Dragon的命名空间
{
Class Program –>定义一个Program的类
{
Static void Main(string[] args) –>定义一个方法Main
{
}
}
}
C、重置开发环境:工具->导入和导出。
D、Main方法是程序的入口。
E、.sln是解决方案文件;.csproj是项目文件;.cs是类文件。
F、显示行号:工具->选项->所有语言。
G、当解决方案下建多个项目时,需要注意启动项设置。
H、当解决方案下建多个项目时,编译和运行可以考滤使用卸载与加载功能。
I、C#中的注释:单行注释//;多行注释/**/;文档注释///。
J、折叠一段代码#region; #endregion。
5、变量
A、变量的声明: 类型 变量名;
B、变量的赋值: 变量名 = 值;
C、声明多变量: 类型 变量名,变量名1…N。
注: 变量须要先声明再赋值,然后使用。
6、变量命名规则
A、变量名必须以字母开头。
B、变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其它符号。
C、变量名不能与C#中的关键字名称相同。
D、变量名不能与C#中的库函数名称相同。
E、大小写敏感。
7、C#数据类型
A、C#里面的数据类型分为两种:值类型和引用类型。这两者有很大的区别,其中值类型变量直接保存变量的值,引用类型的变量保存的是数据的引用地址。
值类型包括简单值类型和复合型类型。简单值类型可以再细分为整数类型、字符类型、实数类型和布尔类型;而复合类型则是简单类型的复合,包括结构(struct)类型和枚举(enum)类型。
整数类型
数据类型 |
说明 |
取值范围 |
对应System程序集结构 |
sbyte |
有符号8位整数 |
-128-127 |
SByte |
byte |
无符号8位整数 |
0-255 |
Byte |
short |
有符号16位整数 |
-32768-32767 |
Int16 |
ushort |
无符号16位整数 |
0-65535 |
UInt16 |
Int |
有符号32位整数 |
-2147489648-2147483647 |
Int32 |
uint |
无符号32位整数 |
0-42994967295 |
UInt32 |
long |
有符号64位整数 |
-263-263 |
Int64 |
ulong |
无符号64位整数 |
0-264 |
UInt64 |
字符类型
C#中采用Unicode字符集来表示字符类型。一个Unicode字符16位长。
实数类型
数据类型 |
说明 |
取值范围 |
float |
32位单精度实数 |
1.5*10-45-3.4*1038 |
double |
64位双精度实数 |
5.0*10-324-1.7*10308 |
demcimal |
128位十进制实数 |
1.0*10-28-7.9*1028 |
布尔(bool)类型
取值只能是ture或者false,bool类型对应于.NET类库中的System.Boolean结构。它在计算机中占4个字节,即32位存储空间。
结构类型
把一系列相关的信息组织成为一个单一实体的过程,这就是创建一个结构的过程。
struct person
{
string m_name; //姓名
int m_age; //年龄
string m_sex; //性别
}
枚举类型
主要用于表示一个逻辑相关联的项和组合。使用关键字enum来定义。
enum Weekday
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}
B、引用类型
引用类型包括类(class)、接口(interface)、委托(delegate)和数组(array)。
类(class)
类是一组具有相同数据结构和相同操作的对象集合。创建类的实例必须使用关键字new来进行声明。
注意: 类和结构之间的根本区别在于:结构是值类型,而类是引用类型。对于值类型,每个变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;而对于引用类型,每个变量只存储对目标存储数据的引用,每创建一个变量,就增加一个指向目标数据的指针。
接口(interface)
应用程序之间要相互调用,就必须事先达成一个协议,被调用的一方在协议中对自己所能提供的服务进行描述。在C#中,这个协议就是接口。接口定义中对方法的声明,既不包括访问限制修饰符,也不包括方法的执行代码。
注意: 如果某个类继承了一个接口,那么它就要实现该接口所定义的服务。也就是实现接口中的方法。
委托
委托用语封装某个方法的调用过程。
委托的使用过程分为3步:
1.定义 delegate void HelloDelegate();
2.实例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say调用的方法
3.调用 hd();
数组
数组主要用于同一数据类型的数据进行批量处理。在C#中,数组需要初始化之后才能使用。
如:int[] array1 = new int[3]{2,3,5};
int[] array1 = {2,3,5};
注意: 对规则多维数组,调用Length属性所得的值为整个数组的长度;而调用其GetLength方法,参数为0时得到数组第1维的长度,为1时得到数组第2维的长度,以此类推。而对于不规则多维数组,调用Length属性和以0为参数调用其GetLength方法,得到的都是第一维的长度。
C、类型转换
数值转换
数值的转换有一个原则,即从低精度类型到高精度类型通常可以进行隐式转换;而从高精度类型则必须进行显式转换。
如:int i = 100;
long j = 1000;
j = i; //隐式转换,由低精度到高精度的转换
i = (int)j; //显式转换,有高精度到底精度的转换
具体转换过程中信息的丢失就看各数据类型的精度了。(可以参考上面数据类型)
枚举转换
枚举类型与其他任何类型之间不存在隐式转换。而和枚举类型相关的显式转换包括:
1.从所有整数类型(包括字符类型)和实数类型到枚举类型的显式转换;
2.从枚举类型到所有整数类型(包括字符类型)和实数类型的显式转换;
3.从枚举类型到枚举类型的显式转换。
装箱和拆箱转换
主要是值类型与引用类型之间相互转换。
如:object obj 1= 10;
int i = (int)obj; //拆箱
int j = 100;
object obj2 = j; //装箱
转换检查
如果出现转换失败,程序就会抛出一个System.InvalidCastException异常。
8、C#运算符
C#可以分为一下几类:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、其他运算符。
1、算数运算符 + - * / % 加、减、乘、除、取余
2、赋值运算符 = ,+=, -= ,*=, /= , %=, &= ,|= , ^= ,>>=, <<=.
3、关系运算符 > ,<,>=,<=,==,!=.
4、逻辑运算符 !,&&,||.
5、位运算符 按位取反~,按位与&,按位或|,左移<<,右移>>,按位抑或^
6、条件运算符 ?和:组成,用于三元表达式。
7、其他运算符
字符串连接符+;
() 类型转换运算符 将一种数据类型强制转换成另外一种数据类型
is运算符 检查对象是否与给定类型兼容;
as 运算符用于在兼容的引用类型之间执行某些类型的转换,类似于强制转换操作.注意,as 运算符只执行引用转换和装箱转换. as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用强制转换表达式来执行;
sizeof运算符,获得值类型数据在内存中占用的字节数;
new运算符,用于创建对象和调用对象的构造函数;
true运算符 返回布尔值 true 表示真,否则返回 false;
false运算符 返回布尔值 true 表示假,否则返回 false;
typeof ,用于获得一个对象的类型;
checked 和unchecked,用于控制整数算术运算中当前环境的溢出情况.
优先级
基本(其他运算符)>一元>乘除>加减>移位>关系>等式>按位与>按位抑或>按位或>逻辑与>逻辑或>条件>赋值
9、C#转义字符
·一种特殊的字符常量;
·以反斜线""开头,后跟一个或几个字符。
·用可以看见的字符表示那不可以看见的字符, 如' '表示换行
常用的转义字符及其含义:
’ 单引号
” 双引号
\ 反斜杠