C#如何调用类的方法

来源:AI视频音频作者:石川澪头衔:网络博主
导读:本期聚焦于小伙伴创作的《C#如何调用类的方法》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#如何调用类的方法》有用,将其分享出去将是对创作者最好的鼓励。

在C#编程中,类是封装数据和行为的核心载体,调用类的方法是实现业务逻辑的基础操作。不同类型的类方法调用规则存在差异,掌握这些规则能提升开发效率。

类方法的基本分类

C#中的类方法按照调用方式可以分为实例方法和静态方法两大类,此外还有构造函数这种特殊的方法,不同类别的调用逻辑完全不同。

实例方法

实例方法是属于类的具体实例的方法,调用前必须先创建类的对象实例。下面定义一个包含实例方法的示例类:

// 定义一个示例类
public class Calculator
{
    // 实例方法:计算两个数的和
    public int Add(int a, int b)
    {
        return a + b;
    }
}

调用实例方法的步骤如下:

  • 使用new关键字创建类的实例对象
  • 通过对象实例加上点号运算符调用对应的方法

具体调用代码示例如下:

class Program
{
    static void Main(string[] args)
    {
        // 创建Calculator类的实例
        Calculator calc = new Calculator();
        // 调用实例方法Add
        int result = calc.Add(3, 5);
        Console.WriteLine("相加结果:" + result);
    }
}

静态方法

静态方法属于类本身,不需要创建实例就可以直接调用,通常用来定义不依赖实例状态的功能。修改上面的Calculator类,添加一个静态方法:

public class Calculator
{
    // 实例方法
    public int Add(int a, int b)
    {
        return a + b;
    }

    // 静态方法:计算两个数的乘积
    public static int Multiply(int a, int b)
    {
        return a * b;
    }
}

静态方法的调用不需要创建对象,直接通过类名加点号运算符调用:

class Program
{
    static void Main(string[] args)
    {
        // 直接通过类名调用静态方法Multiply
        int mulResult = Calculator.Multiply(4, 6);
        Console.WriteLine("相乘结果:" + mulResult);
    }
}

带参数的方法调用

类的方法可以接收不同类型的参数,包括值类型参数、引用类型参数、可选参数和可变参数,调用时需要根据参数定义传递对应的值。

值类型与引用类型参数

值类型参数传递的是值的副本,修改参数不会影响原始变量;引用类型参数传递的是引用地址,修改参数会影响原始对象。示例代码如下:

public class ParamDemo
{
    // 值类型参数方法
    public void ChangeValue(int num)
    {
        num = 100;
    }

    // 引用类型参数方法
    public void ChangeArray(int[] arr)
    {
        arr[0] = 99;
    }
}

调用这两个方法的代码:

class Program
{
    static void Main(string[] args)
    {
        ParamDemo demo = new ParamDemo();
        int val = 10;
        demo.ChangeValue(val);
        Console.WriteLine("值类型参数调用后:" + val); // 输出10,原始值未改变

        int[] arr = { 1, 2, 3 };
        demo.ChangeArray(arr);
        Console.WriteLine("引用类型参数调用后第一个元素:" + arr[0]); // 输出99,原始数组被修改
    }
}

可选参数与可变参数

可选参数在定义时带有默认值,调用时可以不传递该参数;可变参数使用params关键字定义,可以接收多个同类型的参数。示例类如下:

public class AdvancedParam
{
    // 可选参数方法,b的默认值为10
    public int Sum(int a, int b = 10)
    {
        return a + b;
    }

    // 可变参数方法,接收多个整数
    public int Total(params int[] nums)
    {
        int sum = 0;
        foreach (int num in nums)
        {
            sum += num;
        }
        return sum;
    }
}

调用代码:

class Program
{
    static void Main(string[] args)
    {
        AdvancedParam ap = new AdvancedParam();
        // 不传递可选参数b,使用默认值10
        int sum1 = ap.Sum(5);
        Console.WriteLine("可选参数调用结果:" + sum1); // 输出15

        // 传递可选参数b
        int sum2 = ap.Sum(5, 20);
        Console.WriteLine("传递可选参数结果:" + sum2); // 输出25

        // 调用可变参数方法
        int total = ap.Total(1, 2, 3, 4, 5);
        Console.WriteLine("可变参数调用结果:" + total); // 输出15
    }
}

构造函数的调用

构造函数是类初始化时自动调用的特殊方法,用来初始化对象的成员。如果定义了带参数的构造函数,创建对象时需要传递对应的参数。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    // 默认构造函数
    public Person()
    {
        Name = "默认名称";
        Age = 0;
    }

    // 带参数的构造函数
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

调用不同构造函数的代码:

class Program
{
    static void Main(string[] args)
    {
        // 调用默认构造函数
        Person p1 = new Person();
        Console.WriteLine("默认构造:" + p1.Name + "," + p1.Age);

        // 调用带参数的构造函数
        Person p2 = new Person("张三", 25);
        Console.WriteLine("带参构造:" + p2.Name + "," + p2.Age);
    }
}

继承场景下的方法调用

当子类继承父类时,可以调用父类定义的方法,如果子类重写了父类的方法,调用时会执行子类的实现。使用base关键字可以显式调用父类的方法。

// 父类
public class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("动物发出声音");
    }
}

// 子类
public class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("狗汪汪叫");
    }

    public void CallBaseSpeak()
    {
        // 显式调用父类的Speak方法
        base.Speak();
    }
}

调用代码:

class Program
{
    static void Main(string[] args)
    {
        Dog dog = new Dog();
        dog.Speak(); // 调用子类重写的方法,输出狗汪汪叫
        dog.CallBaseSpeak(); // 调用父类的方法,输出动物发出声音
    }
}

注意事项

  • 调用实例方法前必须确保对象已经实例化,否则会抛出空引用异常
  • 静态方法不能直接访问实例成员,只能访问静态成员
  • 调用方法时传递的参数类型和数量需要和方法的参数定义匹配
  • 重写父类方法时需要使用override关键字,否则只是定义了新的方法而不是重写

C#类方法调用实例方法静态方法构造函数修改时间:2026-07-02 19:27:43

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。