C#—【基础3-枚举、数组、异常处理、方法、out传值、重写与重载】

本文介绍了C#中的基本概念,包括枚举的声明和使用,结构的声明,数组的多种声明方式及操作,如排序、反转,异常处理的try-catch-finally结构,以及方法的定义、重载和重写。同时讲解了out和ref参数的区别和用法,展示了面向过程与面向对象的特点和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【内容】

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;

}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值