还记得你刚开始写代码的时候吗?每一行都得手写,重复写个一百次打印“Hello World”都会让你手抽筋。那会儿你肯定想,有没有个“快捷键”能让我不用每次都复制粘贴?
有,这玩意儿叫方法。
在 C# 里,方法就是把你的一堆代码包成一个“快递箱”。你不用关心箱子里装的是什么(写好的逻辑),你只需要知道怎么打开它(调用),以及它递给你什么(返回值)。
别怕,咱们用最接地气的方式聊聊怎么把这“快递箱”包得漂漂亮亮。
一、 定义你的第一个快递箱:static void Main 其实就是个方法
虽然你天天在 Main 方法里打转,但新手通常搞不清 static 和 void 是干嘛的。咱们先偷个懒,往后稍稍,先看你真的能写出来的东西。
你要造个盒子,得先告诉它要干什么。这就是方法签名。
static void SayHello()
{
Console.WriteLine("你好,世界!");
}
这段代码干了啥?它定义了一个叫 SayHello 的盒子。static 是说这个盒子是公用的,不需要你先造个房子(实例化对象)才能用。void 的意思是“空的”,就是说这个盒子递出来的东西是个空手道高手,啥也不带。
你想让它干活,得这么叫:
SayHello();
代码写得越少,Bug 越少。 这句话听着玄乎,其实就是别把一百行逻辑塞在一个方法里,那是给电脑找麻烦,也是给自己挖坑。
二、 给盒子投喂东西:参数
写了半天,你的 SayHello 只能永远只会喊那一句话,太无聊了。能不能让它喊出你的名字?
这就需要参数了。参数就像快递单上的收货人地址,没这地址,快递员不知道往哪送。
修改一下盒子:
// 这里 (string name) 就是参数列表,告诉盒子:“进来的时候,我会塞给你一个叫 name 的东西”
static void SayHello(string name)
{
Console.WriteLine($"你好,{name}!欢迎来到第四阶段。");
}
调用的时候,记得给它喂食:
SayHello("隔壁老王");
再来个带数字的,稍微复杂点:
static int Add(int a, int b)
{
return a + b;
}
这就厉害了。这个盒子是个“计算器”,int 是告诉盒子:“我要喂两个整数进去,你也给我吐个整数出来。”
注意这里的 return 关键字。它就像是你吃完美食,把盘子递出去,告诉别人:“这盘子擦干净了,算我服务周到。”
三、 函数式编程:那个箭头 => 是啥意思?
前面说的都是面向过程的思维:我要个盒子,我给它粮,它给我结果。
进了 C# 第四阶段,你可能会看到一堆乱七八糟的箭头:x => x * 2。这就是所谓的“函数式编程”里的Lambda 表达式。
它是个什么鬼?简单说,它就是“匿名函数”,或者叫“速记法”。
传统的写法是:
int Calculate(int x)
{
return x * 2;
}
你还得编个名字 Calculate,还得写两行代码。
Lambda 写法:
int Calculate(int x) => x * 2;
左边是参数,右边是逻辑。=> 翻译成人话就是“变成”或者“送去处理”。这一长串代码,直接就能把它塞进 C# 强大的工具箱(LINQ)里去用。
比如你想从一堆数字里挑出偶数,以前你得写个循环,现在你直接扔给 Lambda:
int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
这里的 n => n % 2 == 0 就是那个极速快递员,它负责在海量数据里一眼扫到符合条件的,然后把它们挑出来。
四、 泛型:万能的快递单
现在你的快递箱(方法)只能运“整数”。那我想运字符串呢?想运人呢?难不成还得造一百个箱子?
不用。
咱们给快递箱留个空位,到时候再填。这就是泛型。
// 这里的 <T> 就是那个万能空位,可以是 int,也可以是 string
static T GetFirstItem<T>(T[] items)
{
if (items.Length > 0)
return items[0];
return default(T); // 如果是空的,给个默认值
}
你把这个箱子叫 GetFirstItem,第一次运的时候告诉它“我是整数箱子”,第二次告诉它“我是字符串箱子”。程序员最讨厌重复造轮子,泛型就是你的终极偷懒神器。
总结与行动
从复制粘贴的代码,到封装成方法,再到用 Lambda 快速处理数据。C# 的魅力就在于它给了你从繁琐中解脱出来的武器。
别光看不练。
给自己布置个家庭作业:试着写一个方法 GetMax(int a, int b, int c),专门用来从三个数里找出最大的那个,别用 Math.Max,自己写逻辑!写完了你才算真的把这第四阶段给通关了。
别怕写错,错是调试出来的,写是喊出来的。





这一切,似未曾拥有