1. C#语言概述
- c#语言是面向对象的程序设计语言,后缀名是.cs
- c#语言没有指针
- c#语言完全拥有.NET的自动回收机制
- c#语言不能用于硬件驱动程序的开发
- .NET是一个用于建立应用程序的平台
- 源代码是一个用于应用程序的核心,没有源代码则无法编译一个应用程序
- 工具栏是一些工具按钮的组合
- Console.ReadLine()的作用是防止程序运行完后控制台自动关闭
- c#的每一个程序至少有一个自定义类
- c#程序必须包含一个main方法
- Main方法必须有static关键字
- Using语句可以非限定地使用属于命名空间的类
2. 常用标签控件
- [锁定控件]这个操作将把窗体上所有的控件锁定在当前位置
- 标签控件时最简单的控件,用来显示静态文本
- 按钮控件是最常用的控件,FlatStyle属性可以设置外观
- 文本框是使用最频率最高的控件
- PasswordChar属性用于设定文本框设置密码字符串的显示方式
- ReadOnly属性用于设定程序运行时能否对文本框进行编辑
- ScrollBars属性用于设定文本框是否具有滚动条
3. 数据类型
- 常见的数据类型包括:int, float, double, bool, char,string
标识符
标识符由字母,下划线,数字或中文组成
标识符应以字母,中文或下划线开头(建议不要用中文)
标识符中间不能包空格
- c#语言是强类型语言(在定义变量时必须初始化,否则会报错)
- const用来声明常量
- Convert.ToString()可以用于显示进制数(第1个参数表示要被转换成字符串的整数,第2个参数表示将以二进制的方式显示数字)
- 小数默认是double类型
- Math.Round()方法用于将值舍入到最接近整数或指定的小数位数
- decimal类型具有更高的精度和更小的范围,如果想使用此类型需要加上后缀m
- \r\n表示换行
- 可以在字符串前加上@使得转义字符不做处理
- 可用IndexOf()方法搜索指定的字符或字符串的索引,若是无法找到则返回-1
隐式类型转换特例:
- 不存在浮点数和decimal的转换
- 不存在到char类型的转换
4. 运算符和表达式
- 递增和递减运算符只能用于变量, 而不能用于常量或表达式
- 在做除法运算时,若符号两边均为整数,则结果也为整数,会舍弃小数部分
小案例
a = 6 + (c = 5)
c = 5 a = 6 + c = 11
- &和&&运算符的区别在于,&& 不能对整型进行计算,|| 和 | 也是如此
- 运算符优先级: 算数运算符 > 关系运算符 > 赋值运算符
5. 数组
- 数组是具有相同类型的一组数据
- 数组可以是一维,二维,多维,交错的
- 数值数组元素的默认值是0或空
- 数组的索引从0开始,具有n个元素的数组的索引是0~n-1
- 数组元素可以是任何类型, 包括数组类型
- 在C#中使用new关键字创建数组的对象
- 数组的Length属性保存数组中当前包含的元素总数
- foreach语句只能访问数组中的元素,不能对数组元素进行更改
- 数组和String是引用类型
- 值类型在栈上分配元素, 引用类型在堆上分配元素
- Array可以具有多个维度,而ArrayList始终是一维的
- ArrayList的长度可以通过count属性获得
6.GDI+图形
- 在使用GDI+绘图时,需要先创建Graphics图形对象
- 用某控件或窗体的CreateGraphics方法创建Graphics对象,该对象表示该控件或窗体的绘图表面
- 接受对图形对象的引用,该对象为窗体或控件的paint事件中paintEventArgs的一部分
创建Graphics对象的两种方法
- Graphics g = this.CreateGraphics();//在控件中绘制
- Graphics g = e.Graphics();//在Form1_Paint中绘制
- 笔是Pen类的实例,画刷是从Brush类派生的任何类的实例
- Point是一个结构体
- Rectangle是一个结构体,属于值类型
- 双缓冲技术使用内存缓冲区来解决由于多重绘制操作造成的闪烁问题,但是消耗内存
- DrawPolygon()方法用于绘制封闭的多边形轮廓
- FillPolygon()方法用于绘制填充的多边形
7. 方法
- 方法是类中用于执行计算或其他行为的成员函数
用方法构造代码由2个优点
- 方法允许将程序分为不连续的逻辑单元
- 可以在其他程序中使用为某个程序开发的方法
- 方法体中任何位置可以出现任意数目的return语句
- 不能在一个方法体内声明另一个方法
参数有以下四种类型
- 值参数 :不含任何修饰符
- 引用型参数:以ref修饰声明
- 输出参数 :以out修饰符声明
- 数组型参数 :以params修饰符声明
注意事项
1.引用参数必须在进行初始化之后才能调用,而输出参数则不用
2. 在方法体内可以不给引用参数赋值,但必须给输出参数赋值
3. params修饰符声明的参数称为数组参数
4. 数组型参数允许向方法传递个数变化的参数
5. 如果形参列表中包含了数组型参数,那么他必须在参数列表中位于最后
6. 数组型参数只允许是一维数组
7. 数组型参数不允许使用ref和out修饰符
小案例:使用递归求1-100的和
int SumOf(int i){
if(i == 1){
return 1;
else{
return i+SumOf(i-1);}}}
int sum = SumOf(100);
Console.WriteLine(sum);
Consloe.ReadLine();
- C#语言中的变量从作用域上来说可分为局部变量和成员变量
8. 窗体和控件
- Windows应用程序的界面是窗体和控件组成的
- 控件按照可见性来说又可分为可视控件和非可视控件
- StartPosition属性可设置窗体的起始位置
- KeyPreview值指示在将案件事件传递到具有焦点的控件前,窗体是否接受此按键事件
- Opacity可设置窗体的透明度,TransparencyKey设置透明色
- Load事件是把窗体载入工作区是所发生的事件,Load事件一般用来做一些程序初始化的工作
- Resize当用户调整窗体大小会触发此事件