C#基础(8)函数

前言

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

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

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

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

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

概念

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

作用:

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

写在哪里

  • class语句块中(类)

  • struct语句块中(结构体)

基本语法

//1      2       3       4       5
static 返回类型 函数名(参数类型 参数名1,参数类型 参数名2...)

1.static

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

2.返回类型

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

3.函数名 

使用帕斯卡命名法。

4.参数

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

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

使用

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

无参无返回值

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

有参无返回值

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

无参有返回值

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;}
}

有参有返回值

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)

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;}
}

输出结果 

Sum: 30
Difference: -10

关于return

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

总结

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/53985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python | Leetcode Python题解之第395题至少有K个重复字符的最长子串

题目: 题解: class Solution:def longestSubstring(self, s1: str, k: int) -> int:if k 1: return len(s1)n len(s1)res 0for c in range(1, len(set(s1)) 1):# 滑窗中字母种类个数恰好为 cfreq Counter()l cnt tcnt 0 for r, ch in enu…

代码随想录训练营Day3 | 链表理论基础 | 203.移除链表元素 | 707.设计链表 | 206.反转链表

今天任务:学习链表理论基础 链表的类型 链表的存储方式 链表的定义…

开发一款通过蓝牙连接控制水电表的微信小程序

增强软硬件交互 为了更好的解决师生生活中的实际问题,开发蓝牙小程序加强了和校区硬件的交互。 比如通过蓝牙连接控制水电表,减少实体卡片的使用。添加人脸活体检测功能,提高本人认证效率,减少师生等待时间。 蓝牙水电控展示 蓝…

计算机科学基础 -- 超流水线

超流水线的概念 超流水线是一种进一步提高处理器性能的技术,它在传统流水线的基础上,将多个流水线组合在一起,能够在同一个时钟周期内同时执行多条指令。这种设计允许处理器的多个功能单元并行处理不同的指令,从而提高指令级并行…

HashMap常用方法及底层原理

目录 一、什么是HashMap二、HashMap的链表与红黑树1、数据结构2、链表转为红黑树3、红黑树退化为链表 三、存储(put)操作四、读取(get)操作五、扩容(resize)操作六、HashMap的线程安全与顺序1、线程安全2、…

【LeetCode每日一题】2024年9月第二周(上)

2024.9.9 中等 难度评分 1333 链接:2181. 合并零之间的节点 (1)题目描述: (2)示例 (3)分析 整体来说,描述还算清晰的题目,找到0节点所框定的区域&#xff0c…

Python中列表、元组、字典和集合的详细解释

Python中列表、元组、字典和集合的详细解释 1. 列表(List) 定义:列表是可变的有序集合,可以存储多个项目。列表中的项目可以是不同类型的。 特点: 有序:元素的顺序是固定的。可变:可以修改内…

Pandas读取某列、某行数据——loc、iloc区别

loc:通过行、列的名称或标签来索引 iloc:通过行、列的索引位置来寻找数据 首先,我们先创建一个DataFrame生成数据 import pandas as pddata {a:[1,2,3,4,5],b:[6,7,8,9,10],c:[11,12,13,14,15] } data pd.DataFrame(data) print(data) 运行…

工具、环境等其他小问题归纳

此篇文章内容会不定期更新,仅作为学习过程中的笔记记录 一、查询Windows 10环境下python版本与安装路径 若电脑成功安装了python环境,不小心忘了版本。 I、查询版本 1、cmd窗口快捷查询 Win R 输入cmd 进入窗口; 直接输入 python --version …

QT如何ui上的QTableWidget控件如何使用

在Qt中,QTableWidget是一个常用的控件,用于在UI上展示和操作表格数据。如果你是在Qt Designer中设计UI,那么你可以直接将QTableWidget从Widget Box拖拽到你的窗体上。如果你是在代码中创建UI,那么你需要通过编程方式添加QTableWid…

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注…

关于武汉芯景科技有限公司的IIC电平转换芯片XJ9517开发指南(兼容PCF9517)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.电平转换 2.芯片使能/失能 EN 引脚为高电平有效,内部上拉至 VCC(B),允许用户选择中继器何时有效。这可用于在上电时隔离行为不良的从机,直到…

4052A/4052B/4052C/4052D/4052E/4052F/4052G /4052H信号/频谱分析仪

4052A/4052B/4052C/4052D/4052E/4052F/4052G /4052H信号/频谱分析仪 苏州新利通 Ceyear 4052具备出色的测试动态范围、相位噪声、幅度精度和测试速度,具备频谱分析、I/Q分析、实时频谱分析、瞬态分析、矢量信号分析、脉冲分析、音频分析等丰富的测试功能。 Ceyear…

qt 槽函数中获取发射信号的对象(widget)

概述 在Qt中,槽函数(slot)默认是不直接知道是哪个对象(widget)发送了信号的。这是因为Qt的信号和槽机制设计上是解耦的,即信号的发送者和接收者之间不需要有直接的依赖或了解。然而,如果确实需…

OpenAI发布o1预览模型:推理能力更强可达理科博士生水准

近日OpenAI宣布推出了新一代 AI 模型系列 OpenAI o1,按照官方技术博客说法,o1 在推理能力上代表了人工智能最强的水平。 那究竟是怎么一回事呢? OpenAI CEO Sam Altman 表示:o1 系列的推出代表了 AI 能力的新起点,能…

240909-ChuanhuChatGPT集成Ollama的环境配置

A. 最终效果 B. 需求文件 requirements.txt (至少需要安装这个,具体参见官网)requirements_advanced.txt (如果安装了Ollama,并且可以进行对话,可以不需要安装,具体参见官网)requirements_succcess.txt&am…

gin配置swagger文档

一、基本准备工作 1、安装依赖包 go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files2、在根目录上配置swagger的路由文件 //2.初始化路由router : initialize.Routers()// 配置swaggerdocs.SwaggerInfo…

微服务杂谈

几个概念 还是第一次听说Spring Cloud Alibaba ,真是孤陋寡闻了,以前只知道 SpringCloud 是为了搭建微服务的,spring boot 则是快速创建一个项目,也可以是一个微服务 。那么SpringCloud 和 Spring boot 有什么区别呢?S…

Unity for Android使用蓝牙低功耗Bluetooth LE

Unity2021.3.35f1 插件&#xff1a;Bluetooth LE for iOS and Android v2.3.unitypackage 1、将插件资源包导入unity中 2.修改插件中的AndroidManifest文件 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schem…

2024.9.13

A. 极好的问题 一道好题&#xff0c;只要想得到逆元就很简单&#xff0c;但是考试的时候想了半天才想到 注意使用桶存数据时&#xff0c;要使用无序的&#xff0c;因为其本质是哈希表&#xff0c;而有序的是红黑树&#xff0c;速度差很多 同类问题&#xff0c;我看到有人用了随…