Administrator
发布于 2025-09-13 / 3 阅读
0
0

C#教程: 方法入门

什么是方法?

方法就是一段有名字的代码块,可以重复使用。就像厨房里的食谱:

  • 方法名:食谱的名字(如"做蛋炒饭")

  • 参数:需要的食材(如"鸡蛋、米饭、盐")

  • 方法体:烹饪步骤

  • 返回值:做好的菜品

方法的基本结构

//定义方法的语法:
[访问修饰符] [静态修饰符] 返回类型 方法名(数据类型 形参名,数据类型 形参名)
{
    // 方法体 - 要执行的代码
    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);
        }
    }
}
​

方法类型总结

类型

示例

用途

无参数无返回值

void 显示菜单()

执行操作,不需要结果

有参数无返回值

void 设置颜色(string 颜色)

根据输入执行操作

有参数有返回值

int 计算面积(int 长, int 宽)

处理数据并返回结果

学习方法的最佳实践

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:返回"下午好,{姓名}!"
其他时间:返回"晚上好,{姓名}!"


评论