2023 年 9 月,微软大中华区的 MVP 和学生大使一起开了一个 C# 系列科普讲座,挂在“MVP 聚技站”下面,用的是 Microsoft Learn 上“C# 入门”的课程。这是第 5 期,讲“方法”(也就是函数)。分享嘉宾是 MVP 张安忠老师,他做了八年 .NET 开发,写过《ASP.NET Core 5.0 开发入门与实战》。这一场我做主持,也和张老师分着讲,我讲的是最基础的那部分。


讲了什么
整场分三段:知识入门、代码演示、逻辑进阶。
什么是方法。 方法就是一段有名字的代码,调用它的名字,就执行里面的语句。从最简单的 SayHello() 开始,加上参数变成 SayHello("Tom"),再看程序是怎么先跳进方法、执行完再回来的。
为什么要把重复的代码抽出来。 用一个“药品服用时间”的小程序做例子:同一段格式化时间的代码写了好几遍,把它抽成一个方法,代码短了,也好读了。顺带讲了一条编程的老规矩:DRY,不要重复你自己(Don’t Repeat Yourself)。

把方法当成一个“黑盒”。 只管它接什么、吐什么,先给每个任务起个名字,再一个个去填里面的逻辑。
一道“面试题”。 假设你在面试,面试官让你写一个程序,检查一个 IPv4 地址是否有效:四个数字、用点隔开、不能有前导零、每个数在 0 到 255 之间。大家可以先想想,怎么用几个方法把它拆开。

递归。 从“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事……”讲起,再到俄罗斯套娃,然后用阶乘对比递归和循环两种写法。


抢答。 最后三道选择题:哪一行是正确的方法签名、怎么声明方法、怎么调用方法。扫码回复“.NET”进群抢答,奖品是社区定制的马克杯和张老师的书。

回头看
这是我第一次在“MVP 聚技站”主持。半年后,我又主持了这个栏目 GenAI 系列的一期:用 .NET 开源框架高效管理多 AI Agent 应用系统。