什么是方法?
方法就是一段有名字的代码块,可以重复使用。就像厨房里的食谱:
方法名:食谱的名字(如"做蛋炒饭")
参数:需要的食材(如"鸡蛋、米饭、盐")
方法体:烹饪步骤
返回值:做好的菜品
方法的基本结构
//定义方法的语法:
[访问修饰符] [静态修饰符] 返回类型 方法名(数据类型 形参名,数据类型 形参名)
{
// 方法体 - 要执行的代码
return 返回值; // 如果返回类型不是void
}
//调用方法的语法
方法名(实参);
生活化示例(理解)
示例1:最简单的"烹饪方法"
// 定义一个方法
public static void 做蛋炒饭()
{
Console.WriteLine("1. 打鸡蛋");
Console.WriteLine("2. 炒米饭");
Console.WriteLine("3. 混合翻炒");
Console.WriteLine("4. 出锅!");
}
// 使用(调用)方法
做蛋炒饭(); // 执行方法中的代码
示例2:带参数的"烹饪方法"
public static void 做炒饭(string 主食, int 数量)
{
Console.WriteLine($"正在做{数量}份{主食}炒饭...");
}
// 使用
做炒饭("鸡蛋", 2); // 输出:正在做2份鸡蛋炒饭...
做炒饭("虾仁", 3); // 输出:正在做3份虾仁炒饭...
示例3:有返回值的"烹饪方法"
public static string 做奶茶(string 茶底, string 配料)
{
string 奶茶 = $"{茶底}奶茶加{配料}";
return 奶茶;
}
// 使用
string 我的奶茶 = 做奶茶("乌龙", "珍珠");
Console.WriteLine(我的奶茶); // 输出:乌龙奶茶加珍珠
实际代码示例
示例1:无参数无返回值
namespace ConsoleApp2
{
//默认修饰符:internal
internal class Program
{
//方法定义
public static void PrintHello()
{
Console.WriteLine("Hello, World!");
}
public static void Main(string[] args)
{
//方法调用
PrintHello();
}
}
}
示例2:有参数无返回值
namespace ConsoleApp2
{
//方法定义
static void QueryAge(string userName, int birthYear)
{
int userAge = 2025 - birthYear;
Console.WriteLine($"{userName}的年龄是{userAge}");
}
internal class Program
{
public static void Main(string[] args)
{
//方法调用
QueryAge("张三", 2007);
}
}
}
示例3:有参数有返回值
namespace ConsoleApp2
{
//默认修饰符:internal
internal class Program
{
//方法定义
static int squareValue(int value)
{
//return:用于设置返回值的关键字
return value * value;
}
public static void Main(string[] args)
{
//方法调用
squareValue(5);
}
}
}
示例4:有参数有返回值
namespace ConsoleApp2
{
//默认修饰符:internal
internal class Program
{
//方法定义
public static string QueryAge2(string userName, int birthYear)
{
int userAge = 2025 - birthYear;
string result = $"{userName}的年龄是{userAge}";
Console.WriteLine($"{result}");//这不是返回值
return result;//这是返回值
}
public static void Main(string[] args)
{
//方法调用
Console.WriteLine(QueryAge2("李四", 2008));
}
}
}
示例3:有参数有返回值
namespace ConsoleApp2
{
//默认修饰符:internal
internal class Program
{
//方法定义
static int squareValue(int value)
{
//return:用于设置返回值的关键字
return value * value;
}
public static void Main(string[] args)
{
//方法调用
squareValue(5);
}
}
}
示例3:有参数有返回值
namespace ConsoleApp2
{
//默认修饰符:internal
internal class Program
{
//方法定义
static int squareValue(int value)
{
//return:用于设置返回值的关键字
return value * value;
}
public static void Main(string[] args)
{
//方法调用
squareValue(5);
}
}
}
方法类型总结
学习方法的最佳实践
1. 给方法起好名字
// ✅ 好的名字 - 一看就知道做什么
public static double 计算圆的面积(double 半径)
public static string 获取用户名(int 用户ID)
// ❌ 不好的名字 - 太模糊
public static void 处理()
public static int 方法1()
2. 保持方法简短
// ✅ 好的:每个方法只做一件事
public static double 计算折扣(double 原价, double 折扣率)
{
return 原价 * 折扣率;
}
public static double 计算总价(double 折后价, double 税费)
{
return 折后价 + 税费;
}
练习题目
写一个方法计算两个数的和
写一个方法判断数字是否是偶数
基础题 - 问候生成器
要求:编写一个方法,根据传入的时间和姓名生成不同的问候语。
6:00-12:00:返回"早上好,{姓名}!"
12:00-18:00:返回"下午好,{姓名}!"
其他时间:返回"晚上好,{姓名}!"