C#基础(8)函数

前言

我们先前已经具备了一些自己写小程序的能力,但是依旧还是逃不过大量的代码,那么今天,我们就将学习一个减少我们重复工作量的东西:函数。

在数学中我们知道,函数就是一个固定的公式,会画固定的图。

其实程序中,这也是一个道理,他有固定的步骤,然后会走固定的路线。

C#中的函数是一种可重用的代码块,可以执行特定的操作并返回一个值。函数在C#中被称为方法(method)。

函数在C#中提供了封装和重用代码的功能。通过将相关代码封装在函数中,可以更好地组织代码并提高代码的可读性和可维护性。

概念

函数(方法)本质是一种具有名称的代码块

作用:

  1. 封装代码,便于复用
  2. 抽象行为

写在哪里

class语句块中(类)

struct语句块中(结构体)

基本语法

cs 复制代码
//1      2       3       4       5
static 返回类型 函数名(参数类型 参数名1,参数类型 参数名2...)

1.static

不是必须的,在没有学类和结构体之前必须写

2.返回类型

  1. 引出一个新的关键词,void(表示没有返回值)
  2. 可以写任意类型的变量,14种变量类型+复杂数据类型

3.函数名

使用帕斯卡命名法。

4.参数

参数不是必须有的,可以有0到无数个,也可以是任意变量类型,使用驼峰命名法。

5.当返回类型不为void时,必须通过新关键词return返回对应类型

使用

我们就用例子来解释几个类型,相信你能很快get到函数的用法。

无参无返回值

cs 复制代码
using System;

class Program
{
    static void Main(string[] args)
    {
        // 调用无参无返回值的函数
        PrintHello();
        
        Console.ReadLine();
    }
    
    static void PrintHello()
    {
        Console.WriteLine("Hello, World!");
    }
}
 

有参无返回值

cs 复制代码
using System;

class Program
{
    static void Main(string[] args)
    {
        // 调用有参无返回值的函数
        PrintMessage("Hello, World!");
    }

    // 有参无返回值的函数
    static void PrintMessage(string message)
    {
        Console.WriteLine(message);
    }
}
 

无参有返回值

cs 复制代码
using System;

public class Program
{
    public static void Main(string[] args)
    {
        // 调用函数并打印返回值
        int result = CalculateSquare();
        Console.WriteLine("返回值是: " + result);
    }

    // 定义一个无参有返回值的函数
    public static int CalculateSquare()
    {
        int number = 5;
        int square = number * number;
        return square;
    }
}
 

有参有返回值

cs 复制代码
public int AddNumbers(int num1, int num2)
{
    int sum = num1 + num2;
    return sum;
}
 
using System;

public class Program
{
    public static void Main(string[] args)
    {
        // 调用函数并打印返回值
        int result = AddNumbers(1,2);
        Console.WriteLine("返回值是: " + result);
    }

    // 定义一个有参有返回值的函数
    public int AddNumbers(int num1, int num2)
    {
    int sum = num1 + num2;
    return sum;
    }
}

有参有多返回值函数(暂时不用掌握,因为有关键词out)

cs 复制代码
using System;

class Program
{
    static void Main(string[] args)
    {
        int x = 10;
        int y = 20;
        int sum, difference;

        SumAndDifference(x, y, out sum, out difference);

        Console.WriteLine("Sum: " + sum);
        Console.WriteLine("Difference: " + difference);
    }

    static void SumAndDifference(int a, int b, out int sum, out int difference)
    {
        sum = a + b;
        difference = a - b;
    }
}
 

输出结果

apache 复制代码
Sum: 30
Difference: -10
 

关于return

return可以直接不执行后面的代码,直接返回到函数外部

总结

我们到这里其实就已经学习完了函数相关的知识。

当然,博主这里给出的例子其实都比较简单,在实际应用上,函数会写得更为复杂。

在后续开发中,我们也会和函数打很多交道。

多说无益,请期待我的下一篇博客!

相关推荐
bluebonnet274 分钟前
【Rust练习】22.HashMap
开发语言·后端·rust
古月居GYH4 分钟前
在C++上实现反射用法
java·开发语言·c++
吾与谁归in22 分钟前
【C#设计模式(13)——代理模式(Proxy Pattern)】
设计模式·c#·代理模式
吾与谁归in24 分钟前
【C#设计模式(14)——责任链模式( Chain-of-responsibility Pattern)】
设计模式·c#·责任链模式
在下不上天30 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
陌小呆^O^43 分钟前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp
I_Am_Me_1 小时前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
重生之我是数学王子1 小时前
QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
开发语言·c++·qt
Ai 编码助手1 小时前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php
学习前端的小z1 小时前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript