C#语言入门详解 --- 方法(含传值 输出 引用 数组)

方法

方法标准式


<Access Specifier> <Return Type> <Method Name>(Parameter List)
{
   Method Body
}

让我们逐一对每一个模块进行解释:

  • Access Specifier:访问修饰符,这决定了接下来的主题的可见性,包含public,private...
  • Return type:主体的返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果不返回任何值,则返回类型为 void
  • Method name:本次定义的方法的名称。
  • Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。
  • Method body:方法主体,包含了完成任务所需的指令集。

方法的调用顺序为,先讲方法所属的对象进行实例化,然后使用方法名进行调用。

举例:

using System;
namespace test
{class test{public int compare(int a,int b){int result;if (a > b)result = a;elseresult = b;return result;}static void Main(){int a = 100;int b = 120;test Study = new test();int result = Study.compare(a,b);Console.WriteLine(result);}}}

方法参数

传值参数

这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。

定义形式为不带任何修饰符的参数,在方法体中调用不会影响主程序中实参,因为并未对实参储存位置进行操作。

using System;
namespace test
{class test{public void swap(int a,int b){int temp = a;a = b;b = temp;}static void Main(){int a = 100;int b = 120;test Study = new test();Console.WriteLine(a);Study.swap(a,b);Console.WriteLine(a);}}
}

我们在test类中定义了一个交换函数,通过调用想要将a,b的值进行交换,让我们将上述代码运行后发现,两次输出a的值都为100,并没有将函数swap并没有将主函数中a,b的值交换。

引用参数

这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。

声明引用参数时需要携带修饰符ref,调用时也需要对传入的参数携带修饰符ref;

引用参数的储存位置就是实参的储存位置,相当于方法调用时,将实参的储存位置赋给了函数的形参中。

using System;
namespace test
{class test{public void swap(ref int a,ref int b){int num = a;a = b;b = num;}static void Main(){int a = 100;int b = 120;test Study = new test();Console.WriteLine(a);Study.swap(ref a,ref b);Console.WriteLine(a);}}
}

输出参数

这种方式可以返回多个值。其目的在于返回一个数值,而不是为了改变。

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

using System;
namespace test
{class test{public void input(out int x){int num = 100;x = num;}static void Main(){int a = 500;test Study = new test();Study.input(out a);Console.WriteLine(a);}}
}

数组参数

数组参数的定义传值参数类似,但必须是形参列表中的最后一个,使用params进行修饰

using System;
namespace test
{class Program{static int Qiuhe(params int[] intArray){int sum = 0;foreach (var item in intArray){sum += item;}return sum;}static void Main(){int[] a = new int[] {1,2,3};int num = Qiuhe(a); //静态类型不能通过实例类型进行访问int result = Quite(1,2,3,4,5,6);Console.WriteLine(num);}}
}
using System;
namespace test
{class Program{static void Express(params string[] strArray){foreach (var item in strArray){Console.WriteLine(item);}}static void Main(){string str = "TIM;TOM;AMY";string[] result = str.Split(';',';');Express(result);	}}
}

具名参数&可选参数

具名参数:

对于其他方法严格要求形参带入的位置,通过使用具名参数可以无视参数传递的顺序。

using System;
namespace test
{class Program{static void swap(int a,int b){Console.WriteLine(a);Console.WriteLine(b);}static void Main(){int a = 100;int b = 200;swap(a:b,b:a);}}
}

可选参数:

参数因为具有“默认值”而使得可选。

using System;
namespace test
{class Program{static void swap(int a = 200,int b = 100){Console.WriteLine(a);Console.WriteLine(b);}static void Main(){swap(); //具有默认值可以直接使用函数而不需要传参}}
}

扩展方法(this 参数)

方法必须是公有且静态,public static进行修饰

必需是形参列表中的第一个,由this修饰

using System;
using System.Collections.Generic;
namespace test
{class Program{static void Main(){double x = 3.14;double y = x.Round(4);Console.WriteLine(y);}}static class DoubleExtension{public static double Round(this double input,int digits){double result = Math.Round(input,digits);return result;}}}

参考资料

-《C#图解教程》

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

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

相关文章

使用python绘制三维直方图

使用python绘制三维直方图 三维直方图定义特点 效果代码 三维直方图 维直方图&#xff08;3D直方图&#xff09;是一种用于展示三维数据分布情况的图表。它扩展了二维直方图的概念&#xff0c;通过在三维空间中绘制柱体来表示数据在三个维度&#xff08;X、Y、Z&#xff09;上…

漏斗限流(leaky bucket)

漏斗限流(leaky bucket&#xff09; 介绍工作原理leaky bucket实现示例&#xff1a;搭配pool池pool.lua示例搭配示例 对象池&#xff08;pool&#xff09;结合漏斗限流&#xff08;leaky bucket&#xff09;的好处&#xff1a; 介绍 漏斗限流&#xff08;leaky bucket&#xff…

Ollama 配置多并发和多模型

ollama新版已经支持了并发和多模型同时运行了&#xff0c; 系统资源够的可以走起了 默认的ollama服务是不支持的&#xff0c; 需要自己进行调整&#xff0c; 调整的方式如下&#xff1a; Linux为例 通过调用 编辑 systemd 服务systemctleditollama.service 这将打开一个编辑器…

Changes Coming to NIAP Entropy Assessment Reports in 2025

“What do you say to a room full of DRBGs standing around you? Everyone, please be seeded.” -Quin, atsec tester When things change, it can help to approach that change with a light heart like this. Recently, NIAP announced that Entropy Assessment Rep…

结合gin框架在沙箱环境下实现电脑网站支付和当面支付

文章目录 配置支付宝开放平台编写代码测试电脑网站支付当面扫码支付 配置支付宝开放平台 支付宝开放平台 点击链接&#xff0c;扫码进入后&#xff0c;点击沙箱&#xff1a; 点击沙箱应用&#xff0c;可以看到APPID&#xff0c;接口加签方式选择系统默认密钥就行&#xff0…

基于Python的垃圾分类检测识别系统(Yolo4网络)【W8】

简介&#xff1a; 垃圾分类检测识别系统旨在利用深度学习和计算机视觉技术&#xff0c;实现对不同类别垃圾的自动识别和分类。应用环境包括Python编程语言、主流深度学习框架如TensorFlow或PyTorch&#xff0c;以及图像处理库OpenCV等&#xff0c;通过这些工具集成和优化模型&a…

第2天:项目结构与配置深入

第2天&#xff1a;项目结构与配置深入 目标 熟悉Django项目结构&#xff0c;配置基础设置。 任务概览 理解Django项目结构。配置settings.py。理解Django的URL配置。 详细步骤 理解Django项目结构 Django项目由一个或多个应用&#xff08;apps&#xff09;组成。每个应用…

js 实现图片纵向拼接并下载

js 使用canvas实现图片按照顺序拼接成纵向长图 /*** 图片拼接长图*/export default class ImageStitching {constructor(options) {this.imageUrls options.imageUrlsthis.images []this.imagesLoaded 0this.canvas nullthis.ctx nullthis.width options.width || 750th…

python判断一个数是不是偶数

在Python中&#xff0c;你可以使用模运算符 % 来判断一个数是否为偶数。模运算符会返回两个数相除的余数。如果一个数除以2的余数为0&#xff0c;那么这个数就是偶数。 以下是一个简单的Python函数&#xff0c;用于判断一个数是否为偶数&#xff1a; def is_even(n):return n…

成都爱尔林江院长建议近视防控从小做起,具体怎么做

预防近视应从小做起&#xff0c;知识储备多多益善。孩子如何做到近视防控&#xff1f; 成都爱尔眼科医院小儿眼科专家林江院长建议家长和孩子同时树立科学观念&#xff0c;让孩子拥有一个丰富多彩假期的同时强身健体也保护好眼睛。 不宅家、多户外 确保每天至少2个小时的户外…

【教程】SEO搜索优化怎么做?你必须知道的网站SEO诊断优化关键因素

在SEOer界流传着这样一句话,“内容为王,外链为皇,速度为后,内链为妃,代码为将,关键词为相,结构为城,更新为太子,工具为神兵”,我相信站长们对这条“黄金法则”一定都不陌生,其中“速度为后,工具为神兵”为土爹爹添加。毫不夸张地说,SEO(搜索引擎优化)就是大多数…

解锁5G新营销:视频短信的优势与全方位推广策略

随着5G时代的全面来临&#xff0c;企业的数字化转型步伐日益加快&#xff0c;视频短信作为新兴的数字营销工具&#xff0c;正逐步展现出其巨大的潜力。视频短信群发以其独特的形式和内容&#xff0c;将图片、文字、视频、声音融为一体&#xff0c;为用户带来全新的直观感受&…

线上盲盒小程序:前景展望

在移动互联网的浪潮下&#xff0c;线上盲盒小程序作为一种新兴的购物模式&#xff0c;具有广阔的发展前景和潜力。以下是对线上盲盒小程序未来前景的展望&#xff1a; 一、市场规模持续扩大 随着消费者需求的不断增长和市场竞争的加剧&#xff0c;线上盲盒小程序的市场规模将持…

【C#】scriptcs : 无法将“scriptcs”项识别为 cmdlet、函数、脚本文件或可运行程序的名

scriptcs : 无法将“scriptcs”项识别为 cmdlet、函数、脚本文件或可运行程序的名 最近在用vscode运行c#控制台程序是会出现上述的状况&#xff0c;几番周折之后找到了解决方法。 首先在电脑上安装scoop 然后运行powershell&#xff0c;分别输入 Set-ExecutionPolicy -Execu…

【TensorFlow深度学习】模型解释性工具与可解释AI技术简介

模型解释性工具与可解释AI技术简介 模型型解释性工具与可解释AI技术简介&#xff1a;洞悉“黑箱”的艺术1. LIME&#xff08;局部可解释模型-agnostic解释方法&#xff09;2. SHAP&#xff08;SHapley Additive Explanations&#xff09;3. Partial Dependence Plots (PDP)与IC…

无人机比赛有哪些?

无人机比赛项目可是多种多样&#xff0c;精彩纷呈呢&#xff01; 常见的比赛项目包括S形绕桩赛、平台起降赛、应用航拍、投掷物品和定点飞行等。这些项目不仅考验无人机的性能&#xff0c;更考验飞行员的操控技巧。 在S形绕桩赛中&#xff0c;飞行员需要操控无人机快速而准确…

Vue的测试策略:如何使用单元测试和端对端测试来确保Vue应用的质量

介绍 测试的重要性 在开发软件应用的过程中,测试具有重要的作用。它可以帮助开发者捕捉到程序中的错误和漏洞,保证软件的质量。功能性的测试可以帮助确认应用程序或系统满足了其功能需求。测试驱动的开发方式,如TDD(Test-Driven Development),也被广泛提倡并实践,因为…

03-QTWebEngine中使用qtvirtualkeyboard

qt提供了 virtualKeyboard 虚拟键盘模块&#xff0c;只需要在在main函数中最开始加入这样一句就可以了 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 但是在使用的时候遇到了一些问题&#xff1a; 1、中文输入的时候没有输入提示 Qvirt…

【初阶数据结构】深入解析单链表:探索底层逻辑(无头单向非循环链表)

&#x1f525;引言 本篇将深入解析单链表:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &…

springboot 酒庄内部管理系统(源码+sql+论文)

绪论 1.1 系统研究目的意义 随着信息技术的不断发展&#xff0c;我们现在已经步入了信息化的时代了&#xff0c;而信息时代的代表便是网络技术的日渐成熟&#xff0c;而现在网络已经和我们的生活紧密的联系起来了&#xff0c;我们不敢想象没有网络我们的生活会像怎么样&#…