news 2026/6/26 7:26:30

C# 方法(Methods)详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# 方法(Methods)详解

什么是方法(Method)

方法(Method)是 C# 中用于封装一组执行特定功能代码的成员。通过方法,可以提高代码的复用性、可读性和维护性。

简单来说,方法就是完成某项任务的代码块。


一、方法的基本语法

访问修饰符 返回类型 方法名(参数列表) { // 方法体 return 返回值; }

示例

using System; class Program { static void Main() { SayHello(); } static void SayHello() { Console.WriteLine("Hello World!"); } }

输出:

Hello World!

1.方法组成部分

以以下方法为例:

public static int Add(int a, int b) { return a + b; }

组成部分说明:

组成部分说明
public访问修饰符
static静态方法
int返回值类型
Add方法名称
(int a, int b)参数列表
return返回结果

1.1无参数无返回值方法

static void PrintMessage() { Console.WriteLine("欢迎学习C#"); }

调用:

PrintMessage();

特点:

  • 没有参数
  • 没有返回值
  • 返回类型使用void

1.2有参数无返回值方法

static void PrintName(string name) { Console.WriteLine("姓名:" + name); }

调用:

PrintName("张三");

输出:

姓名:张三

1.3无参数有返回值方法

static string GetTime() { return DateTime.Now.ToString(); }

调用:

string time = GetTime(); Console.WriteLine(time);

1.4有参数有返回值方法

static int Sum(int num1, int num2) { return num1 + num2; }

调用:

int result = Sum(10, 20); Console.WriteLine(result);

输出:

30

二、参数传递方式

1. 值传递(默认)

static void ChangeValue(int num) { num = 100; } int a = 10; ChangeValue(a); Console.WriteLine(a);

输出:

10

说明:

  • 方法修改的是副本
  • 原变量不受影响

2. ref 参数

必须先赋值才能传入。

static void ChangeValue(ref int num) { num = 100; } int a = 10; ChangeValue(ref a); Console.WriteLine(a);

输出:

100

3. out 参数

用于返回多个结果。

static void GetData(out string name, out int age) { name = "张三"; age = 18; } string name; int age; GetData(out name, out age);

4. in 参数

只读引用传递。

static void Show(in int num) { Console.WriteLine(num); }

特点:

  • 性能高
  • 方法内部不可修改

可选参数

static void ShowInfo(string name, int age = 18) { Console.WriteLine($"{name}-{age}"); }

调用:

ShowInfo("张三"); ShowInfo("李四", 25);

输出:

张三-18 李四-25

命名参数

ShowInfo(age: 20, name: "王五");

优点:

  • 提高代码可读性
  • 参数顺序可调整

params 可变参数

允许传入不确定数量的参数。

static int Sum(params int[] nums) { int total = 0; foreach (int num in nums) { total += num; } return total; }

调用:

Console.WriteLine(Sum(1,2,3)); Console.WriteLine(Sum(1,2,3,4,5));

输出:

6 15

方法重载(Overload)

同一个方法名,不同参数列表。

static int Add(int a, int b) { return a + b; } static double Add(double a, double b) { return a + b; } static int Add(int a, int b, int c) { return a + b + c; }

调用:

Add(1, 2); Add(1.5, 2.5); Add(1, 2, 3);

三、递归方法

方法调用自身。

计算阶乘

static int Factorial(int n) { if (n == 1) return 1; return n * Factorial(n - 1); }

调用:

Console.WriteLine(Factorial(5));

输出:

120

四、静态方法与实例方法

1.静态方法

属于类本身。

class MathHelper { public static int Add(int a, int b) { return a + b; } }

调用:

MathHelper.Add(1, 2);

实例方法

属于对象。

class Person { public void SayHello() { Console.WriteLine("你好"); } }

调用:

Person p = new Person(); p.SayHello();

2.表达式主体方法

适用于简单逻辑。

static int Square(int x) => x * x;

等价于:

static int Square(int x) { return x * x; }

3.局部函数(Local Function)

方法内部定义方法。

static void Main() { int Add(int a, int b) { return a + b; } Console.WriteLine(Add(1, 2)); }

方法设计原则

单一职责原则

一个方法只完成一项功能。

❌ 不推荐:

void Process() { // 查询数据 // 计算数据 // 保存数据 // 打印日志 }

✅ 推荐:

GetData(); CalculateData(); SaveData(); WriteLog();

方法命名规范

推荐使用动词开头:

GetUser() CreateOrder() DeleteFile() UpdateData() SaveChanges()

避免:

Data() User() Info()

总结

C# 方法是实现代码复用和模块化开发的重要基础。掌握方法的定义、调用、参数传递(值、ref、out、in)、可选参数、可变参数、方法重载、递归以及静态与实例方法的区别,有助于编写结构清晰、易维护的程序。在实际开发中,应遵循单一职责原则和规范的命名习惯,使代码更加专业和高效。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 7:26:14

谷歌收录删除降权原因:首页突然搜不到,90%是改了这段代码

11月14日早上8点30分,某跨境家居企业的运营部传出惊呼。数据看板显示,昨日日均达到12500个独立访客的自然流量折线图,在凌晨2点断崖式下跌至仅剩34人。打开谷歌搜索框输入品牌完全匹配名称,前五页充斥着领英专页、油管视频以及第三…

作者头像 李华
网站建设 2026/6/26 7:24:51

IntelliJ IDEA安装目录设置深度解析(Windows/macOS/Linux三端权威配置手册)

更多请点击: https://kaifayun.com 第一章:IntelliJ IDEA安装路径设置概述 IntelliJ IDEA 的安装路径不仅影响启动性能与插件加载,更直接关联到配置文件、缓存目录及项目索引的默认存储位置。合理规划安装路径有助于多版本共存、权限管理及跨…

作者头像 李华
网站建设 2026/6/26 7:24:06

EMC核心痛点:差模与共模辐射

在现代电子设备中,电磁辐射是产品设计必须面对的挑战。要理解设备为何会对外产生干扰,我们就不得不提到两种最基本的辐射机理:差模辐射和共模辐射。它们就像一对性格迥异的兄弟,虽然都源于电路中的电流,但产生原因和表…

作者头像 李华
网站建设 2026/6/26 7:23:30

轨迹受限优化:基于局部几何的线性收敛新框架解析

1. 从“走投无路”到“柳暗花明”:理解轨迹受限优化的核心困境在优化算法的世界里,我们常常面临一个看似矛盾的局面:理论上,一个算法可能拥有漂亮的收敛性证明,比如线性收敛速率,这意味着每迭代一步&#x…

作者头像 李华
网站建设 2026/6/26 7:22:08

Voohu:共模电感在EMI滤波器中的阻抗匹配与宽频带选型策略

共模电感是EMI滤波器的核心元件,通过双绕组磁通叠加增强阻抗抑制共模噪声。然而,共模电感的阻抗特性随频率变化显著,选型不当会导致特定频段滤波失效。本文分析共模电感阻抗匹配的原理,给出基于噪声频谱的宽频带选型策略和PCB布局…

作者头像 李华