C# 方法(函数)

文章目录

  • C# 方法(函数)
    • 简单示例
      • 程序代码
      • 运行效果
    • 值传递和引用传递
      • 示例程序
    • 运行效果
    • 按输出传递参数
      • 运行结果

C# 方法(函数)

简单示例

程序代码

访问的限制符
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{class Test{public int getPublicSumAge(int a,int b){int c;c = a + b;return c;}private int getPrivateSumAge(int a, int b){int c;c =( a + b ) * 10;return c;}//递归方法:factorialpublic int factorial(int num){/* 局部变量定义 */int result;if (num == 1){return 1;}else{result = factorial(num - 1) * num;return result;}}static void Main(string[] args){int age;Test test = new Test();age = test.getPublicSumAge(12, 8);Console.WriteLine("SumAgePublic:" + age);//Console.ReadLine();age = test.getPrivateSumAge(12, 8);Console.WriteLine("SumAgePrivate:" + age);Console.WriteLine("6 的阶乘是: {0}", test.factorial(6));Console.ReadLine();}}
}

运行效果

在这里插入图片描述

值传递和引用传递

示例程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{class Test{//转换函数(值传递)public void swapValue(int x,int y){int temp;temp = x; /* 保存 x 的值 */x = y;    /* 把 y 赋值给 x */y = temp; /* 把 temp 赋值给 y */}//转换函数(引用传递)public void swapRef(ref int x,ref int y){int temp;temp = x; /* 保存 x 的值 */x = y;    /* 把 y 赋值给 x */y = temp; /* 把 temp 赋值给 y */}static void Main(string[] args){Test test = new Test();int a1 = 100;int b1 = 200;Console.WriteLine("在交换之前,a1 的值: {0}", a1);Console.WriteLine("在交换之前,b1 的值: {0}", b1);/* 调用函数来交换值 */test.swapValue(a1, b1);Console.WriteLine("在交换之后,a1 的值: {0}", a1);Console.WriteLine("在交换之后,b1 的值: {0}", b1);/* 局部变量定义 */int a2 = 300;int b2 = 400;Console.WriteLine("在交换之前,a2 的值: {0}", a2);Console.WriteLine("在交换之前,b2 的值: {0}", b2);/* 调用函数来交换值 */test.swapRef(ref a2, ref b2);Console.WriteLine("在交换之后,a2 的值: {0}", a2);Console.WriteLine("在交换之后,b2 的值: {0}", b2);Console.ReadLine();}}
}

运行效果

在这里插入图片描述

按输出传递参数

return 语句可用于只从函数中返回一个值。但是,可以使用 输出参数 来从函数中返回两个值。输出参数会把方法输出的数据赋给自己,其他方面与引用参数相似。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{class Test{public void getValue(out int x){int temp = 5;x = temp;}static void Main(string[] args){Test test = new Test();/* 局部变量定义 */int a = 100;Console.WriteLine("方法调用之前,a的值:{0}", a);test.getValue(out a);Console.WriteLine("方法调用之后,a的值:{0}", a);Console.ReadLine();}}
}

提供给输出参数的变量不需要赋值。当需要从一个参数没有指定初始值的方法中返回值时,输出参数特别有用。请看下面的实例,来理解这一点:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{class Test{public void getValues(out int x, out int y){Console.WriteLine("请输入第一个值: ");x = Convert.ToInt32(Console.ReadLine());Console.WriteLine("请输入第二个值: ");y = Convert.ToInt32(Console.ReadLine());}static void Main(string[] args){Test test = new Test();/* 局部变量定义 */int b, c;/* 调用函数来获取值 */test.getValues(out b, out c);Console.WriteLine("在方法调用之后,b 的值: {0}", b);Console.WriteLine("在方法调用之后,c 的值: {0}", c);Console.ReadLine();}}
}

运行结果

在这里插入图片描述

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

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

相关文章

R语言:microeco:一个用于微生物群落生态学数据挖掘的R包,第八:trans_func class

# 生态学研究人员通常对微生物群落的功能特征感兴趣,因为功能或代谢数据对于解释微生物群落的结构和动态以及推断其潜在机制是强有力的。 # 由于宏基因组测序复杂且昂贵,利用扩增子测序数据预测功能谱是一个很好的选择。 # 有几个软件经常用于此目标&…

性能优化(CPU优化技术)-NEON指令详解

原文来自ARM SIMD 指令集:NEON 简介 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀&#xf…

Qt5.9.6+VS2015 部署PCL1.8.1

本文系转载,如侵权请告知删除。原博文链接:https://blog.csdn.net/jepco1/article/details/80752954 0 编译环境 所需软件包及其版本 Qt5.9.6 msvc2015_64 VS2015 VTK 8.0.0 https://gitlab.kitware.com/vtk/vtk/tree/v8.0.0 PCL1.8.1 https://github.c…

蓝桥杯刷题(十二)

1.答疑 代码 n int(input()) L [] for i in range(n):a,b,c map(int,input().split())A ab # 进入和答疑时间B abc # 个人总用时L.append([A,B]) L.sort(keylambda x:x[1]) # 个人总用时短的优先 ans tmp 0 # ans为发消息时刻,tmp为前一个人的总用时 for i …

Linux:Gitlab:16.9.2 创建用户及项目仓库基础操作(2)

我在上一章介绍了基本的搭建以及邮箱配置 Linux:Gitlab:16.9.2 (rpm包) 部署及基础操作(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/136821311?spm1001.2014.3001.5501 本章介绍一下用户的创建,组内设置用户&…

[AIGC] MySQL与PostgreSQL:两种流行的数据库系统的对比

数据库是存储和查询数据的重要工具。在选择数据库时,两个经常被考虑的选项都是开源的:MySQL和PostgreSQL。这两个数据库都与许多应用程序一起使用,但它们在某些方面存在显著的不同。在本文中,我们将比较MySQL和PostgreSQL的一些关…

长安链团队论文入选国际顶会Usenix Security 2024

零知识证明是区块链扩容和隐私保护的关键前沿技术,其天然具备完备性、可靠性和零知识性的特点,是提升区块链交易吞吐量与可扩展性、在验证用户身份的同时保护用户数据隐私,实现复杂计算不可或缺的关键技术。基于零知识证明技术实现高兼容性、…

ansible Playbook案例 安装nginx

目录 核心元素基本组件举例命令行也 是可以创建文件的编辑nginx.yml 运行前三部曲 核心元素 Playbook的核心元素: Hosts:主机组; Tasks:任务列表; Variables:变量,设置方式有四种;…

基于华为ensp的企业网络规划(新版)

第一章 项目概述 1.1 项目总体描述 假设某大型公司总部在北京、在重庆设置分部,总部和分部均有研发部、市场部、财务部等部门,现在要求进行网络规划与设计,实现分部和总部能够进行网络连通。为了保证数据安全,在总部和分部之间可…

pytorch单层感知机

目录 1.单层感知机模型2. 推导单层感知机梯度3. 实战 1.单层感知机模型 2. 推导单层感知机梯度 公式前加了一个1/2是为了消除平方2,不加也是可以的,不会改变函数的单调性 3. 实战 初始化1行10列的x和wsigmod中xw.t() w做了转置操作是为了将[1,10]转换…

目标检测——PP-YOLOE算法解读

PP-YOLO系列,均是基于百度自研PaddlePaddle深度学习框架发布的算法,2020年基于YOLOv3改进发布PP-YOLO,2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet,2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列,所以放一起解…

Java:类和对象

目录 1.面对对象的初步认识1.1 什么是面向对象?(Java当中一切皆为对象)1.2 面对对象与面对过程 2.类的定义和使用2.1简单认识类2.2 类的定义格式 3.类的实例化3.1 什么是实例化3.2类和对象的说明 4.this引用4.1为什么要使用this引用4.2 什么是…

上位机图像处理和嵌入式模块部署(qmacvisual图像预处理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 不管大家是在读书的时候学习的图像处理,还是在后来的工作中,重新学习了图像处理,相信大家对图像预处理的概念并…

基于nodejs+vue班级管理系统的设计与实现-flask-django-python-php

随着电子技术的普及和快速发展,线上管理系统被广泛的使用,有很多事业单位和商业机构都在实现电子信息化管理,班级管理系统也不例外,由比较传统的人工管理转向了电子化、信息化、系统化的管理。随着互联网技术的高速发展&#xff0…

创建自己的“百度网盘”(部署owncloud)

[rootlocalhost html]# cd /root/[rootlocalhost ~]# wget https://download.com/server/stable/owncloud-10.12.0.zip --no-check-certificate #下载当前的owncloud代码包[rootlocalhost ~]# yum -y install unzip #安装解压工具[rootlocalhost ~]# unzip owncloud-10.12.0.zi…

HarmonyOS ArkTS 基础组件

目录 一、常用组件 二、文本显示(Text/Span) 2.1 创建文本 2.2 属性 2.3 添加子组件(Span) 2.4 添加事件 三、按钮(Button) 3.1 创建按钮 3.2 设置按钮类型 3.3 悬浮按钮 四、文本输入(TextInput/TextArea)…

【Flutter】导航组件 NavigationRail 的用法简介

​​Material Design 3 定义了三种导航模式,其用法和对应的 Flutter 组件如下所示: MD3 导航Flutter 组件用途Navigation barBottomNavigationBar小型屏(宽度小于640)Navigation drawerDrawer大型屏(宽度大于960&…

MacOS Xcode 使用LLDB调试Qt的 QString

环境: MacOS: 14.3Xcode: Version 15.0Qt:Qt 6.5.3 前言 Xcode 中显示 预览 QString 特别不方便, 而Qt官方的 lldb 脚本debugger/lldbbridge.py一直加载失败,其他第三方的脚本都 不兼容当前的 环境。所以自己研究写…

游戏反云手机检测方案

游戏风险环境,是指独立于原有设备或破坏设备原有系统的环境。常见的游戏风险环境有:云手机、虚拟机、虚拟框架、iOS越狱、安卓设备root等。 这类风险环境可以为游戏外挂、破解提供所需的高级别设备权限,当游戏处于这些风险环境下&#xff0c…

CCIE-04-Layer2_WAN_TS

目录 实验条件网络拓朴 路由器配置开始排错, 要求R11可以访问R17的telnet检查R12和R11的e0/0口,有发现检查R17和R12的S4/0口, 有发现ping R17环回口地址,发现不通telnet R17环回口IP 实验条件 网络拓朴 路由器配置 R11 4组以太网…