【内容】
1.枚举的声明
语法格式:
访问修饰符(Public等) enum +枚举名称(首字母大写)
位置:类的上边,命名空间内声明。
举例:
Public enum Gender
{
男,
女,
中
}
2.枚举值如何使用
Static void Main(string[] args)
{
Int num = 10;
Gender gender = gender.男; //性别只有男和女
}
枚举强制类型转换成int类型
Int num = (int)gender;
3.结构的声明
语法格式:
[访问修饰符(Public等)可省略] struct +结构名
{
结构体=public 变量类型 变量名
}
举例:(一次声明多个不同类型的变量)
Public struct Person
{
Public string _name(字段);
Public int _age;
}
4.数组声明
(1)第一种声明
int[ ] nums1 = new int[ ] {2,3,4};
(2)第二种声明
int[ ] nums = new int[10];
nums[8] = 90;
(3)第三种声明
int[ ] nums3 = new int[3] {1,2,3};
(4)第四种声明
int[ ] nums4 = {1,2,3,4,5};
4.1数组的存值
数组的存值和取值都是通过下标或者通过索引来进行赋值和取值的。
nums[5] = 23;
nums[7] = 100;
5.数组排序
典型举例:冒泡排序
原理:两两比较,若从大到小排序,若后者大于前者,交换位置。有n个数,共比较n-1轮。
第一轮共比较n-1次,依次递减1。
举例:
int[] nums = new int[]{98,54,54,322,43,23};
int temp = 0;
for (int j = 0;j < nums.Length – 1; j++)
{
for (int i = 0; i < nums.Length - 1 – j; i++)
{
If (nums[i] > nums[i + 1])
{
temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for (int I = 0; i < nums.Length; i++)
{
Console.Write(nums[i] + “\t”);
}
Console.ReadKey();
结果为: 322 98 54 54 43 23
7. 数组的排序、反转和forr
语法格式:
int[] nums = new int[] {2,43,3,1,76}
Array.Sort(nums); //排序(小到大排序)
Array.Reverse(nums); //大到小排序
Array.Reverse(nums); //反转(是把1、2、3倒过来3、2、1)
forr :逆向for循环的代码段
8.异常处理
语法格式:
try
{
有可能出现错误的代码;
}
catch
{
如果try中的代码出现异常,则进去catch中
}
finally
{
最后执行的代码
}
总结:
在try块中获取并使用资源,在catch块中处理异常情况,并在finally块中释放资源。
9.方法
语法:
[访问修饰符] static 返回值 方法名(参数列表)
{
方法体
}
举例:
(1)无返回值无参数方法
Public static void Show()
{
Console.WriteLine(“洗碗 刷锅 切菜 放油 炒菜 煮饭 喝酒”);
}
(2)无参有返回值方法
string str = Console.ReadLine();
(3)有参数有返回值
Int num1 = Convert.ToInt32(Console.ReadLine());
注意:
1.命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义
2.方法的调用,对于静态方法,调用有两种方式
3.如果在同一个类中,直接写名字调用就行。或者类名.方法名();
10.方法的重载
方法名相同,但是参数不同,参数类型不同或者参数个数不同,与返回值无关,进行多次重载以适应不同的需要。
11.重写
子类重写父类中的方法,不管父类中是虚方法还是抽象方法,子类都可重写。
12.重载和重写的区别:
重写:子类重写父类的方法,面向对象。
重载:为方法添加不同参数不同类型的内容,面向过程。
其中,什么是面向对象,什么是面向过程呢?
面向过程:分析出解决问题所需要的步骤。
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展。
面向对象:,描述某个事物在整个解决问题的步骤中的行为。
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。
缺点:性能比面向过程低。
13.out传值
out是内部为外部变量赋值,out一般用在函数需要有多个返回值的场所。
注意:
out修饰方法的参数,在方法外面可以不给这个参数赋值,但是在方法里面必须给这个out修饰符的参数赋初值。
参数加out,就是是把这个方法中的参数的值传到方法外面去了。
举例:
class Program
{
static void Main(string[] args)
{
int num1;
int mi,2 = 80;
int numSum = Show(out num1,num2);
Console.WriteLine(num1);
Console.WriteLine(num2);
}
public static int Show(out int number1,int number2)
{
number1 = 90;
}
}
14.ref传值
Ref在用的时候必须给变量赋初值,和out有区别,out可以把方法里的值传出去。
而Ref可以把值传到方法里,又可以把值传到方法外。
在方法外必须赋初值,到方法里,又重新赋值了。
举例:
Static void Main(string[ ] args)
{
Int number1 = 10;
Int number2 = 20;
Int sum = Show(ref number1,ref number2);
Console.WriteLine(“{0},{1},{2}”,number1,number2,sum);
Console.ReadKey();
}
Public static int Show(ref int num1,int num2)
{
num1 = 100;
num2 = 200;
return num1 + num2;
}