C#参数区别

补充:C# 方法必背核心概念 + 必记知识点

一、基础概念(必背)
  1. 方法是什么

方法 = 一段可重复使用的代码块,用来实现一个独立功能

使用流程:先定义 → 后调用,不调用永远不执行

2. 实参 & 形参(必考)

形参:定义方法时,括号里的变量(占位符)

实参:调用方法时,传进去的真实值 / 变量

规则:形参类型、个数、顺序 = 实参必须完全一致

3. 静态方法 static

带 static:属于类,调用:类名.方法名() / 同类直接写方法名

不带 static:属于对象,必须 new 对象 再调用:对象.方法名()

4. 返回值

void:无返回值,只能在方法内输出,不能用变量接收

有返回值:把 void 换成对应类型(int/string/自定义类),必须写 return

return 作用:返回结果 + 直接跳出方法,后面代码不再执行

二、参数 4 种核心类型(必背)

1. 默认参数

格式:类型 形参名 = 默认值

规则:只能放在所有普通参数最后

调用:不传用默认值,传了就用传入的值

2. 值传递(默认传递方式,必考)

值类型(int、double、bool 等)

传递:拷贝一份值

结果:方法内修改形参 → 外部实参不变

引用类型(class、自定义对象)

传递:拷贝内存地址

① 改对象。属性 → 外部跟着变

② 给形参 new 新对象 → 外部不变

3. ref 引用传递

作用:形参与实参是同一个变量,共用一块内存

规则:定义、调用都要写 ref,实参必须提前赋值

结果:不管改属性还是 new 对象,外部一定跟着变

4. out 输出参数

作用:一个方法返回多个结果

规则:定义、调用都写 out,方法内部必须给 out 参数赋值,调用时实参可以不初始化

5. ref vs out 必背区别(高频考点)

ref:实参必须先赋值;out:实参可不用赋值

ref:方法内可不用赋值;out:方法内必须赋值

ref:侧重传入 + 传出;out:侧重只传出结果

6. in 只读参数

作用:参数只能读取,不能修改

规则:值类型:完全不能改

对象类型:可以改属性,不能 new 新对象

7. params 可变参数

格式:params 类型\[\] 数组名

作用:接收任意个数同类型参数

铁则:必须是数组,只能放在所有参数的最后一个调用直接传值,不用手动 new 数组

三、方法定义语法(默写版,必背)

复制代码
csharp运行修饰符 static 返回值类型 方法名(参数列表)
{
    方法体;
    return 值; // 无返回值void不用写
}
修饰符:public(公共,最常用)
方法名:大驼峰命名(首字母大写)

四、你代码里必背易错点(避坑专用)

  • 返回对象的方法,必须 new 对象,否则空引用报错
  • 多参数调用:顺序、类型、个数一个都不能错
  • 默认参数放前面 → 直接报错
  • params 放中间 → 直接报错
  • 静态方法不能直接调用非静态方法
  • 值传递对象:改属性变,new 不变;ref 全变

五、一句话速记口诀(考前直接背)

  • 方法:先定义,后调用
  • 实参真,形参假,类型顺序不能差
  • void 无返回,return 出结果
  • 值传递:值拷贝,对象改属性
  • ref 同变量,out 多返回
  • in 只读不改,params 放最后
相关推荐
日月云棠4 小时前
9 Double 与 Float —— IEEE 754 浮点数在 Java 中的实现
java·后端
Refrain_zc4 小时前
Android 二维码登录轮询机制:从扫码到登录的完整客户端实现
java
影寂ldy4 小时前
C#随机数
开发语言·c#
日月云棠4 小时前
5 StringBuffer —— 线程安全的可变字符串
java·后端
happymaker06264 小时前
SpringBoot学习日记——DAY06(整合MyBatisPlus的其他功能)
java·spring boot·学习
雪豹阿伟5 小时前
11.C# —— 数组属性、高级方法与 Lambda 表达式
c#·上位机
Refrain_zc5 小时前
Android 播放器进度条改造实践:句级音频列表映射秒级时间轴
java
我命由我123455 小时前
Bugly - Bugly 基本使用( App 质量追踪平台)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
c238565 小时前
vector(下)
数据结构·算法