C#语法复习2

第五章 方法

1、方法是一块具有名称的代码

包括:方法体、方法头

局部变量必须被赋值才可以执行下面的操作。实例变量有隐式初始化。有时候,类型推断可以用var关键字,类似于C++当中的auto。用于局部变量。

C#中,不能在第一个名称的有效范围内去声明另一个同名的本地变量。

2、本地常量:局部常量。Const 关键字。Const double PI = 3.1415926; 在编译期决定其值。

3、 参数:形参与实参。参数也有几种:值参数/引用参数。

值类型与值参数是两种不同的概念:值类型就是类型本身包含其值。而值参数是把实参的值复制给形参。

Void mymethod(myclass f1, int f2)

{

F1.val += 5;

F2+= 5;

}

调用: mymethod(a1,a2);

执行过程:

方法开始时,系统在栈中为形参分配空间,并从实参复制值。a1为引用类型,所以引用被复制,但指向相同。

在使用引用参数时,必须加关键字 ref。 void method(ref int val){ xxxx }, 方法调用 method(ref y);//必须使用变量。

举例:

Void mymethod(ref myclass f1,ref int f2)

{

F1.val += 5;

F2+= 5;

}

调用: mymethod(ref a1,ref a2);

执行过程:不会开辟新的内存单元,只是把形参名设置为实参的别名而已。a1与f1,引用相同的位置。

引用类型作为值参数和引用参数:

我们修改引用参数的成员时,无论是作为值参数还是引用参数,效果都一样。但,当我们去修改引用类型本身时,那么其作为值参数与引用参数是不同的。

请看下面的图形:

4、输出参数

需要加关键字 out

Void mythod(out int val); //形参也是实参的别名,且我们通过方法体之后就会知道你传入的实参的值。方法体内部会对实参赋值。

5、参数数组

前面是一个实参对应一个形参,现在是多个实参对应一个特殊的形参。

关键字:params 比如 void mythod(params int[] vals){ }

调用: int[] arrays = {1, 2 ,3}; mythod(arrays);

调用时,如果是用值类型传递,即实参是值,数组参数是值类型,实参不受影响。

如果是引用类型传递,即实参是数组名,数组参数是引用类型,实参受方法内部影响。

6、方法重载

方法名称相同,方法特征不同即可。

7、命名参数

给参数命名,这样我们可以以任意顺序调用。

Void mythod(int a, int b, int c);

参数的名字和值: 调用时指定名称和值即可。 Mythod(c:2, a:4, b: 1);

8、可选参数

就是我们在调用时,可以调用这个参数,也可以省略这个参数。这时,必须在声明的时候给参数提供默认值。

Void mythod(int a, int b, int c = 2);

先是必填参数+ 可选参数+ params 参数。

9、栈帧:就是一个个方法进栈。

时间: 2024-10-10 09:41:03

C#语法复习2的相关文章

sql语法复习:增删查改,各种数据库对象创建和函数使用

推荐工具:机子配置较低的话,可以装Gsql这个工具获得sql执行环境(可作为手册查看内置数据类型 函数和存储过程等) --之前数据库的东西接触不多,虽然基本的语法是了解,但不是很熟悉--最近项目一直在折腾存储过程(一些数据逻辑都通过存储过程在数据库端实现),--复习了一遍sql的东东,在此记录一下. /*--创建数据库create database testuse test;--创建表 字段定义列表 主键 外键create table score (id int primary key, stu

c#语法复习总结(1)-浅谈c#.net

出来工作两年,发现自己进步太小了,工作能力是不能混的,想先从基础知识好好复习一下,再深入的学习一些高级框架和先进的理念.找回了博客园的密码账号,好好学习和总结.先从数据类型总结一下,无非就是值类型,引用类型,在菜鸟教程上看到一种指针类型,这个之前没学习到之后总结一下.说明一下,个人总结方便查看,快速的话推荐看菜鸟教程,实体书效果更好,我自己买了一本厚厚的C#... c# .net关系,c#是语言,.net是框架.大体是这样,有时候面试题也会这样问c# .net关系,这样回答在百度上也可以百度到.

react 基础语法复习1- 搭建开发环境

之前有看过阮一峰老师的react教程跟着做了一遍,学习了一下.好久没看,有点忘记了,这次跟着脚手架工具系统的复习一遍.顺便学习学习 react-router 和 redux 首先,脚手架工具我使用的是create-react-app ,这个是官方出的,感觉比较靠谱.不过真实使用起来感觉比vue-cli复杂,webpack配置文件都在node_modules文件夹里面,找了好久,并且开发环境和生产环境有分开配置了. 全局安装 脚手架工具 cnpm i -g create-react-app //

C#语法复习3

第七章 类与继承 1.虽然派生类不能删除基类的的任何成员,但我们可以利用在派生类当中声明与基类成员名称相同的成员来屏蔽基类成员.这叫 覆盖. 一种是隐式屏蔽.一种是显式屏蔽.所谓 显式就是 加上一个new 关键字即可.此new 可以放在字段前面,也可以放在方法前面. 此时,如果我们还是想访问基类成员,可以使用基类访问方式实现.base. Xxxx 来实现 访问隐藏的继承成员. 2.虚方法与覆写方法 这部分内容和C++里面的 虚函数与抽象类类似,而含有纯虚函数的类属于抽象类. 这里面有个神奇的地方

Unity3d AssetDatabase.SetLabels StartAssetEditing ValidateMoveAsset 语法复习

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. AssetDatabase.SaveAssets 保存资源 static function SaveAssets () : void Description描述 Writes all unsaved asset changes to disk. 将所有未保存的资源更改写入磁盘. AssetDat

IPhone开发值OC基础语法复习

1. 练习1 for循环打印 1-200内不能被3整除的数 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //for循环打印 1-200内不能被3整除的数 printf("这些数不能被3整除: \n"); for(int i=1; i<=200; i++){ if( i% 3 != 0){ printf(" %d &

C#基本语法复习-使用数组和集合

什么是数组? 数组是一个无序的元素序列,数组中的所有元素都具有相同的类型. 声明数组变量: int[] a;数组的大小不是声明的一部分: 创建数组的实例: a=new int[3]; 初始化数组变量: int[] a=new int[2]{1,2}; int[] a={1,2}; Time[] schedule={new Time(1,2),new Time(5,30)}; 创建隐式类型的数组: var name=new[]{new {Name="John",Age=44},new {

C#基本语法复习-使用枚举和结构来创建值类型

声明枚举: enum Season{Spring,Summer,Fall,Winter} 如果不为枚举一个枚举文字常量显示指定一个常量整数型,编译器会自动为他指定比前面一个枚举文字常量大一的值 enum Season{Spring=1,Summer,Fall,Autumn=Fall,Winter} 选择枚举的基本类型: enum Season : Short{Spring,summer,fall,winter } 声明结构: struct Time { private int hours,min

sql基础语法复习

约定:数据库名:test:表名:tb1,tb2,tb3-: 对象:数据库:database 表:table 列:column 索引:index 视图:view 存储过程:procedure 一.数据结构操作 新增:create 删除:drop 查看:show 修改:alter 数据库一般不做修改,数据库改名:rename...to...,但是不推荐使用,有丢失数据的风险. 解决方法:当数据量小时,新建一个数据库,把原数据库的数据导入到新数据库. 当数据量大时,使用shell脚本重命名所有的表.