书接上回,咱们上篇文章介绍了值类型和引用类型的区别,今天咱就来学习学习C#中的函数是个啥。
前言:当代码学会“复制粘贴”,悲剧就开始了...
各位少侠,你是否经历过这样的绝望时刻?
👨💻 场景一:同样的"Console.WriteLine"写了10遍,突然发现要把"你好"改成"HELLO"
👩💻 场景二:用12种姿势算完1+1后,发现老板要求再算100个数的和...这时候你需要施展C#函数的魔法了!让代码学会"分身术"和"瞬移术",开启高效编程模式~
第一章:初识函数——代码界的"瑞士军刀"
1.1 数学老师看了会沉默的函数真相
你以为函数还是数学课上那些f(x)=x²+2x+1?Too young!
C#中的函数是:自带名字的代码快递员📦,只需要喊一声名字,就能让TA帮你送货(执行代码)!
三位核心技能:
- 封装代码:把零散的代码打包成盲盒(别担心,里面没有泡泡玛特)
- 重复使用:召唤术!一个咒语无限复用
- 抽象行为:把代码变成黑科技,其他人只管用,不用问原理
第二章:函数的“出生证明”——解剖语法结构
2.1 超详细函数说明书
static 返回类型 函数名(参数类型 参数名1, 参数类型 参数名2...)
{// 你的代码魔法return 返回值; // 不想回家(返回)?可以用void当护身符
}
五大秘诀:
static
现阶段是必修课(听说学了面向对象就能申请免修?)- 返回类型像菜单——上到鱼香肉丝下到佛跳墙任君选择
- 函数名请用帕斯卡命名法(例如:
SayHello
而不是sayHello
) - 参数列表是VIP等候区——有请客座讲师"古天乐"先生!
- return是任意门——说走就走,不解释!
第三章:函数的百变造型秀(各种类型的函数)
3.1 哑剧演员:无参无返回
static void SayHello()
{Console.WriteLine("程序员有三好:");Console.WriteLine("Debug、改需求、头发少");
}
3.2 单口相声:有参无返回
static void Sing(string songName)
{Console.WriteLine($"正在播放:《{songName}》");Console.WriteLine("你是我天边最美的云彩~♪");Console.WriteLine("(系统:检测到致命走调,已静音)");
}
3.3 神秘魔法师:无参有返回
static string GetProgrammerSecret()
{return "世界上最遥远的距离,是代码在我面前却无法运行";
}
3.4 全能超人:有参有返回
static int CalculateAge(int birthYear)
{return DateTime.Now.Year - birthYear;// 警告:此函数可能导致程序员焦虑症发作
}
第四章:Return的暗黑艺术——消失的代码
你以为return只会乖乖送回数据?太天真了!
return还能扮演"代码终结者"——立刻结束函数,留下未完成的代码在风中凌乱...
static void GiveUp()
{Console.WriteLine("我要开始写项目了!");return; // 逃跑的姿势要帅Console.WriteLine("(这条消息永远不会被看到)");
}
第五章:函数实战——客官,您的满汉全席来了!
吃货专属教程:掌握参数与返回值的极限操作
案例:设计绝世烤串函数
需求:传入肉串数量和辣度,返回烤串状态和烧烤时长
static (string, int) BBQ(int meatCount, string spicyLevel)
{int time = meatCount * 2;string status = $"正在制作{spicyLevel}辣度的{meatCount}串";return (status, time);
}// 使用示例
var result = BBQ(5, "BT级别");
Console.WriteLine($"烤串状态:{result.Item1},预计等待时间:{result.Item2}分钟");
终章:成为函数魔法学院的优等生 🎓
记住函数三定律:
- 能封装的都是好代码(哪怕只是打印Hello World)
- 重复使用是对函数最大的尊重(不然为什么不让你复制粘贴)
- 取个好名字比找对象还重要(
CalculateAge
永远比ABC
讨喜)
最后送大家一句魔法咒语:
“代码的终极奥义,在函数之外,又在参数之中。”
——某个不愿透露姓名的程序诗人
课后彩蛋:试着写个函数计算自己的发际线后移速度,参数提供工作年限——但不保证计算结果能让你笑着活下去~#(注意安全)
好了今天的知识很短,但很重要,请敬请期待我的下一篇文章关于函数传参你不得不知道的只是(ref和out)