C#开发入门
一、.NET Framework
1、组成:公共语言运行时(CLR)、.NET Framework基础类库(Base Class Library,简称BCL)
2、NET应用程序不依赖于操作系统
3、公共语言运行时:.NET Framework
的核心是它的执行环境,该环境即为它。它主要负责管理.NET应用程序的编译、运行以及一些基础的服务;同时为应用程序提供内存分配、线程管理以及垃圾回收;负责对代码实施安全检查。在CLR控制下的代码叫托管代码。
4、通用类型系统(CTS)
5、公共语言规范(CLS):CTS子集,目的是让.NET 平台上编写的对象之间可以互相调用,实现语言的互操作性
6、中间语言(CIL)
2、C#语言
1、不再支持对指针类型的支持,使得程序不能随便访问内存地址空间;不再支持多重继承
2、特点:语言简洁、语言自由性、保留了C++的强大功能、强大的Web服务器控件、支持跨平台、与XML相融合
三、
1、解决方案名默认与项目名相同
2、项目归解决方案管理,program/类的扩展名为.cs
3、空格、括号、分号必须是英文
4、程序运行:编译期、运行期
第一次编译后会生成.dll文件或.exe文件
C#编程基础
1、基本语法
1、格式:程序代码分为 结构定义语句、功能执行语句(最后用分号结束;);严格区分大小写
2、注释:单行“//”多行“/*、*/”;多行不可以嵌套多行
3、标识符:(大小写字母、数字、下划线、@符号 组成,不能以数字开头,不能是C#中关键字)
a. 类名、方法名、属性名 每个单词首字母大写:例 ArrayList
b. 字段名、变量名首字母小写,之后单词首字母大写:例 userName
c. 常量名中所有字母大写:例 DAY_OF
d. 尽量使用有意义单词定义标识符
4、关键字:所有关键字均小写;标识符不能以关键字命名
2、常量
常量包括整型常量、浮点数常量、布尔常量、字符常量
1、整型常量:二进制、八进制、十进制和十六进制
2、浮点数常量:float单精度浮点数、double双精度浮点数(默认)
3、字符常量:用(' ')引起来、可以是英文字母、数字、标点符号、以及由转义序列来表示的特殊字符 例:'a'  '1'  '&'  '\r' '\u0000'
4、字符串常量:表示一串连续的字符,用(" ")引起来 例:"HelloWorld"  "123"  "Welcome \n XXX"
一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,即长度为零。
5、布尔常量即布尔型的两个值true和false
6、null常量
扩展:(\)转义字符
\r:回车;\n:换行;\t:制表符;\b 表示退格符号;\‘ 表示单引号字符;\“ 表示双引号字符;\\ 表示反斜杠字符
3、变量
每个内存单元都用一个标识符来标识,这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
***值类型为数值;引用类型为地址
1、整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。
2、浮点数类型:单精度浮点数(float)、双精度浮点数(double)
3、字符型char,占两个字节
4、布尔类型 true、false
**强制类型转换:目标类型 变量=(目标类型)值
例如:x=(int)z ,x为int类型,z为long类型
Long类型不能直接转换成int类型,所以强制转换
字符串常量中不能直接包括双引号和反斜杠符号
**变量需要先定义,后使用。它有自身的定义域
四、运算符
1、算数运算符
单目:+(正号)、-(负号)、++、--
双目:+、-、*、/、%(余数符号与除数有关)
2、赋值运算符:(运算顺序从右往左)
=、+=、-=、*=、/=、%=
3、比较运算符:==、!=、<、>、<=、>=
4、逻辑运算符:&(与)、|(或)、^(异或)、! (非)、&&(短路与)、||(短路或)
同:&与&&都为与,当且仅当运算符两边的操作数都为true,结果为true,否则为false
异:&&使用时,若左边为false,右边则不进行运算;&左右两边都进行运算
***(^):当两边布尔值相同时,结果为false;不同为true
5、位运算符(针对二进制数)
&(按位与):除1&1为1之外,其余为0;
|(按位或):除0&0为0之外,其余为1;
~(取反):取相反数,如00000110,对应值为 11111001
^( 按位异或):两个二进制数进行异或,若二进制位相同,则为0,否则为1
如:(00000110)^(00001011)=00001101,即13
《左移、》右移
6、优先级:’’!>算术 >关系 >&& > || > 赋值
五、选择结构语句
1、if语句
2、if…else语句
3、if…else if…else语句:适合于分级判断,如对考试成绩进行等级的划分
4、switch语句:根据具体值做出判断,如根据输入数字,决定星期几
六、循环结构语句
1、while语句:条件成立,执行;直到条件不成立,循环停止
2、do…while语句:先执行代码,后执行while语句内的条件;当不满足while条件时,跳出循环
3、for语句:
4、跳转语句:
break语句:* 当出现在switch条件语句中,作用是 终止某个case并跳出switch结构;*出现在循环语句中,作用是 跳出当前循环
break出现在嵌套循环中的内层循环时,只能跳出内层循环
goto语句:若想跳出外层循环,则需要对外层添加标记,然后使用goto语句
continue语句:终止本次循环,但下次循环还执行
C#编程基础
1、方法
1、修饰符:public、private(默认);
返回值类型:若没有,则为void;
方法名(每个单词首字母都为大写);参数名;return关键字(用于结束方法以及返回方法指定类型的值);
扩展:int Abs(int value):求绝对值;double Pow(double x,double y);double Sin(double x);double Cos(double x)
2、方法的重载:针对同一方法传入不同参数
c#允许在一个程序中定义多个同名方法,但是参数的类型或个数必须不同
扩展:判断方法重载:将方法名前的修饰符、返回值类型以及方法体去掉;将方法参数列表中的参数名去掉
2、方法高级应用
1、递归调用:在方法内部调用自身的过程(递归要求必须有结束条件)
2、params参数:让方法调用任意个类型相同的函数;一个方法中只允许有一个,且该参数放到最后
3、ref参数:由于方法里定义的变量是局部的,只在方法内部起作用,在方法调用时传递的值只是将数据复制了一份给方法,方法内对数据的修改不影响方法外的数据。**如果希望外面变量保留修改后的值,使用ref参数;这种传递方式叫引用传递(传递的是变量的地址)
4、out参数:将值从方法体内传到方法体外。放到参数列表最后
扩展:out参数也可以让方法返回多个值
3、数组
1、数组静态初始化:
2、常见操作:数组的遍历:依次访问数组中每个元素;数组最值;数组排序(外层循环次数为arr.Length-1)
3、多维数组
4、程序调试
设置断点;单步调试:逐语句(F11)即进入方法内部调试、逐过程(F12);观察变量;条件断点
面向对象基础
一、面向对象三大特征: 封装性、继承性、多态性
二、类与对象
1、类的定义:类中可以定义字段和方法,字段描述对象特征,方法描述对象行为
定义在类中的变量为字段,定义在方法中的为局部变量;含Main方法类为主类,此方法为程序入口
2、new关键字创建对象 
(当没有任何变量引用这个对象时或者说变量的值为null,它将成为垃圾对象,不能再被使用。)
3、属性(特殊字段)
在程序中,使用属性封装字段时,需要将字段访问级别设为private,并通过对属性的get,set访问器来对字段进行读写操作。
三、访问修饰符
public最高访问级别。protected保护访问级别,受保护的成员可由自身及派生类访问。internal内部访问级别,只有在同一程序集中,内部类型或者成员才可访问。private最低访问级别
访问修饰符可以修饰类和方法,还有字段、属性、索引器、但不可以修饰命名空间、局部变量、方法参数
四、构造方法
定义:方法名与类名相同,在方法名的前面没有返回值类型的声明,在方法中不能使用return语句返回一个值
构造方法也可以重载
扩展:每个类至少有一个构造方法,若没有,系统会默认为这个类创建一个无参数构造方法;一旦为该类定义了构造方法,则不再提供默认构造方法
五、this关键字
局部变量优先于属性。访问属性this.属性名;访问成员方法this.方法名访问构造方法:this(参数1,参数2…)
六、索引器(若想访问多个数据成员,使用索引器。索引器是类的特殊成员)
七、
垃圾回收:(调用GC.Collect()方法)
嵌套类:外部类与嵌套类的非静态成员可以重名,在对非静态成员访问时,需要先创建它所在类的对象。*在嵌套类内不能声明静态成员,但在嵌套类可以直接引用外部类的静态成员
匿名类:应用于使用次数少,没必要创建实例时。它继承自System.Object类
对象初始器:(应用于属性过多时)
八、static关键字(静态字段 静态属性 静态方法 静态构造方法 类名.静态成员名)静态构造方法只能为静态字段赋值
单例模式:指在设计一个类时,需要保证整个程序在运行期间只存在一个实例对象
面向对象高级
类的继承:类的继承是面向对象中一个非常重要的特征,在编写一个新类时可以通过继承一个类的方式来自动拥有该类中所有的成员(除构造方法和析构方法以外),这在程序的开发过程中可以极大地提高代码的复用性,同时也便于对程序功能的扩展。
在C#中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子
类,现有的类被称作父类,子类会自动拥有父类所有可继承的属性和方法。
注意: 在类的继承中,需要注意一些问题,具体如下
继承具有单一性,也就是说一个类只能有一个直接的父类,例如下面的语句是错误的。
多个类可以继承同一个父类,例如下面的语句是正确的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。