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 放最后
相关推荐
shehuiyuelaiyuehao4 分钟前
算法39,位运算,消失的两个数字
java·数据结构·算法
ZiLing4 分钟前
2026 ROS 2 Lyrical 踩坑实录(一):编译与依赖——rosdep、现代 CMake 与 CMake 4.x
算法
小刘在重生~5 分钟前
Java 异常体系完整笔记
java·笔记·python
Murphy_lx6 分钟前
1124. 表现良好的最长时间段
c++·算法
抠脚小弟8 分钟前
Spring Task 定时任务详解:从入门到实战
java·后端·spring
aramae17 分钟前
模拟实现strstr函数(C语言)
c语言·开发语言·算法
2601_9622845026 分钟前
Python 和Java 哪个更适合做自动化测试?
java·自动化测试·python·接口测试·性能测试
liliangcsdn30 分钟前
因子权重矩阵处理-滞回缓冲带+降频稳定化动态重选
开发语言·python·算法
随遇而安zx38 分钟前
【多线程】---AQS 原理 知识点(设计思想与源码深度解析)
java·多线程·aqs
LXMXHJ42 分钟前
springboot中的线程操作
java·spring boot·后端·线程