C#基础(二)代码封装与方法组成

 2024-01-20 03:03:29  阅读 0

数组声明中包括哪些部分_c#结构体内声明数组_c数组声明

C#基础(二)代码封装与方法组成

近两周因设计软件维护,内容无法更新。 我很抱歉。 软件已恢复使用,正在正常更新中。 感谢您的陪伴。 感谢您拥有我们。 我们开始本期的内容吧。

你在代码开发中经常写方法吗? 那么什么是方法,它存在的意义是什么?

首先,方法,也称为函数,是重用一堆代码的机制。 函数是一段可能有输入值(参数)并且可能有返回值的代码。

方法(函数): 1.在类中; 2. 实现特定功能的代码块。 代码块用{}括起来; 该函数提取重复的函数并定义一个新的方法。 这是函数的生成; 3、提高了代码的复用性,减少了代码的冗余。 另外,编写更多的方法体可以增加代码的可读性,让代码看起来更加简洁。

方法体的两个重要概念

1、返回值

函数的函数名是函数的代表,也是一个变量。 由于函数名变量通常用于将函数的处理结果数据返回给调用函数,即递归调用,因此函数名变量一般称为返回值。

2、参数

参数是用于替换数字的未知数字。 例如,如果定义时间并使用t作为参数,当你想计算距离vt(其中v设置为常数)时,当你想计算一段时间内的距离时,只需使用这个公式和带入 t 的值就足够了。

简而言之,参数是一个没有实际意义的符号。 为了使其有意义,只需为参数附加一个值即可。 形式参数是没有实际意义的参数。 比如上面的t实参就是一个有实际意义的参数。 比如上面赋给t的常量,参数一般用于函数调用。 与变量不同。

问答

小艺小艺,这一期你能学到什么?

本期内容:

封装、访问修饰符、方法定义、形式参数、方法参数、扩展方法参数,后面会详细解释。

1、包装的概念

封装被定义为“将一个或多个项目封装在物理或逻辑封装中”。 在面向对象的编程方法中,封装用于防止访问实现细节。 抽象和封装是面向对象编程的相关特征。 抽象允许相关信息的可视化,而封装使开发人员能够实现所需的抽象级别。 C#封装根据具体需求设置用户的访问权限,并通过访问修饰符来实现。

函数可以实现最简单的封装。

2. 访问修饰符

01

,类成员默认级别,只能在类内访问。

02

在内部,类默认级别(无需编写关键字),无论子类还是父类,只要在同一个程序集(DLL、EXE)中都是可见的。

03

,不管是同一个程序集,只要是这个类或者派生类,都是可见的。

04

内部或受保护类的可见性是一个或关系。 只要满足一个条件就可见,相当于同时使用两种情况。

05

公开的,课堂内外可见。

知识拓展:C#和Java修饰符的区别

1. Java使用包的概念,而C#谈论程序集。

2、Java中默认只能访问同一个包,而C#中还可以访问不同程序集的子类。

3、Java子类与基类在同一个包中,声明为的变量、方法和构造函数可以被同包中的任何其他类(不一定是子类)访问。

4、Java子类和基类不在同一个包中:那么在子类中,子类实例可以访问它从基类继承的方法,但不能访问基类实例的方法。

3.方法定义

定义方法时,实质上是在声明其结构的元素。 在C#中,定义方法的语法如下:

<Access Specifier> <Return Type> <Method Name>(Parameter List){   Method Body}

以下是该方法每个组成部分的详细说明:

01

访问修饰符,这决定了变量或方法对另一个类的可见性。

02

类型

返回类型,方法可以返回一个值。 返回类型是方法返回值的数据类型。 如果该方法不返回任何值,则返回类型为 void。

03

姓名

方法名称是唯一标识符并且区分大小写。 它不能与类中声明的其他标识符相同。

04

列表

括在括号中的参数列表是用于传递和接收方法的数据。 参数列表是指方法的参数类型、顺序和数量。 参数是可选的,即方法可以不包含参数。

05

身体

方法主体包含完成任务所需的指令集。

4.正式参与实参

形式参数出现在函数定义中,可以在整个函数体中使用,但不能在函数外部使用。 实际参数出现在调用函数中。 进入被调用函数后,不能使用实际参数变量。

例子:

1、比如定义一个函数void Add(int a, int b),这里的a和b就是形参。

2. 函数调用时,Add(1, 2),这里的1和2是实际参数。

5、方法参数

01

值参数

普通参数传递,形式参数在方法执行时被丢弃。

02

参考参数

定义参数和传递参数时,在参数前面加上ref(void fun(ref int a))。 形参与实参完全等价。 即使传入数值,也只是通过引用传递。 参考参数的作用是强制改变参数值。 参考参数容易造成数据混乱,不推荐使用。

03

输出参数

定义参数和传递参数时,在参数前面加上out(void fun(out int a))。 语法与引用参数的语法类似。 不同的是,参数必须在方法内部赋值,不能直接使用。 也就是说,进入方法之前的值一定不会被使用。 输出参数用于返回结果,可以一次返回多个结果,相当于保存了一个包装类。

04

参数数组

在参数前面添加(void fun(int[] a))。 调用时可以单独传递参数,也可以直接传递给数组。

05

命名参数

调用方法时,可以乱序传递参数,“形参名+冒号+实参”(obj.Sum(num2: 10, num1: 15, ram: 20))。 程序会根据参数名称来匹配参数,而不是根据参数顺序。

06

可选参数

可以不带参数传递的参数在定义形参时赋值,调用时不传递参数。 它们可以单独使用,也可以与命名参数结合使用。 它们放置在固定参数之后和(参数数组)参数之前。

07

可为空参数

值类型(包括枚举和结构体)参数不允许传递null。 参数类型后面加个问号就可以了吗? ,您可以允许实际参数为空。 例如,定义方法(void(?))时,可以允许调用者在传递参数时传递空值。

08

扩展方法参数

将其添加到参数前面。 该参数可以将方法扩展为参数类型。 该类型的参数只能出现在静态类中。 该方法将在后面具体说明。

6. 扩展方法参数

方法参数中有一个非常特殊的类型。 该类型可以将当前方法扩展为参数对应的类。 我们可以直接从参数对应的类对象中调用这个扩展方法。 这种类型的参数称为扩展方法参数。

方法参数太多,以后会单独开期详细说明。

敬请期待~

结尾

小毅的编程日记

标签: 函数封装

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码