3.2自定义方法

方法是类的一种行为,方会使我们的代码容易修改,方便阅读,实现封装和重用。比如前面使用的很多.net定义好的类的方法,当然我们也可以自定义方法。

3.2.1定义方法

语法:

访问修饰符 返回类型 方法名(参数列表)

  //方法的主体

1.访问修饰符:就是可访问的级别,若变量或方法声明为public,表示其他类可以访问,若声明为private,则只能在类中使用。

2.方法的返回类型:方法是供人调用的,调用后可以返回一个值,这个返回值的数据类型就是方法的返回类型,可以是int,float,double,bool,string等,若方法不返回任何值就使用void。

3.方法名:方法的名字应该有明确的含义,便于代码的阅读。

规范:方法名要有实际的含义,一般使用Pascal命名法即组成方法名的单词直接相连,每个单词首字母大写,如:WriteLine(),ReadLine()。

4.参数列表:向方法中传递参数,这些参数就组成了参数列表,没有参数就不用参数列表,参数列表中每个参数都是“类型 参数名”的形式,各参数之间用逗号隔开。

5.方法的主体:方法实现某功能所执行的代码,编写自己的方法时应该先写方法的声明,包括访问修饰符,返回类型,方法名,参数列表,然后再写方法的主体。

3.2.2向方法中传递参数

1.值传递

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace helloWorld
 8 {
 9    /// <summary>
10    /// 演示使用方法计算税后工资
11    /// </summary>
12    class Program
13    {
14       static void Main(string[] args)
15       {
16          int pay;//税前工资
17          float taxRate = 0.1f;//税率
18          float afterTax;//税后工资
19          int standard = 1600;//计税基准金额
20          Console.WriteLine("please input the pay before tax: ");
21          pay = int.Parse(Console.ReadLine());
22          //调用方法计算税后工资
23          afterTax = GetPay(pay,taxRate,standard);
24          Console.WriteLine("pay before tax:{0},pay after tax:{1}",pay,afterTax);
25          Console.ReadLine();
26       }
27 
28       //此方法根据税前工资计算税后工资
29       private static float GetPay(int pay, float taxRate,int standard)
30       {
31          float afterTax;//计税后的工资
32          if (pay <= standard)//低于1600不交税
33          {
34             afterTax = pay;
35          }
36          else
37          {
38             afterTax=pay-(pay-1600)*taxRate;
39          }
40          return afterTax;
41       }
42    }
43 }
View Code

static(静态的),是c#中的一个关键字,用它修饰的方法叫静态方法,静态方法的调用是通过‘类名.方法名',比如WriteLine()就是Console类的一个静态方法,我们从来没有通过new创建Console类的对象,而是直接Console.WriteLine()直接调用。上例中GetPay()与Main()在同一个类,所以可以不需要类名直接调用GetPay()。

 使用下面的代码来实现交换两个数

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace helloWorld
 8 {
 9    /// <summary>
10    /// 演示使用方法计算税后工资
11    /// </summary>
12    class Program
13    {
14       static void Main(string[] args)
15       {
16          int num1=5, num2=10;//两个数字
17          Console.WriteLine("before swap the num is:{0} and {1}",num1,num2);
18          Swap(num1,num2);
19          Console.WriteLine("before swap the num is:{0} and {1}", num1, num2);
20          Console.ReadLine();
21       }
22 
23       //此方法交换数字
24       private static void Swap(int num1, int num2)
25       {
26          int temp;//中间变量
27          temp = num1;
28          num1 = num2;
29          num2 = temp;
30       }
31    }
32 }
View Code

运行结果如下:

两个数的值并没有交换,why?因为我们在给方法传递参数时使用了值传递,就是只把参数的值传到了方法里,若在方法中对参数的值进行修改,在方法调用完后,参数仍然是原来的值。有没有什么方式能够在方法调用后保存对参数的修改呢?这就需要按引用传递参数。

2.按引用传递参数

要想使参数按引用传递,需要使用ref关键字修饰参数

转载于:https://www.cnblogs.com/LJLLY/p/9897682.html

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

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

相关文章

[Electron]仿写一个课堂随机点名小项目

自从前几个月下了抖音&#xff0c;无聊闲暇时就打会打开抖音&#xff0c;因为打开它有种莫名其妙打开了全世界的感觉... 无意中看到这个小视频&#xff1a;随机点名 于是仿写了一个课堂点名小项目&#xff0c;算是对Electron的一个简单的认识&#xff0c;有时间再深入。 项目…

linux redis安装使用,linux安装redis

Linux(CentOS)中Redis介绍、安装、使用【一篇就够】2018-05-13 13:36:16 sjmz30071360 阅读数 1590更多分类专栏&#xff1a; redis版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接和本声明。一、介绍Redis is…

用three.js写一个简单的3D射门游戏

这个小游戏很简单&#xff0c;一共由3个部分构成。1个平面&#xff08;球场&#xff09;&#xff0c;1个球体&#xff08;足球&#xff09;还有一个立方体&#xff08;球门&#xff09;。 上个图给你们感受一下简陋的画风&#xff08;掘金最高上传5M图片&#xff0c;原来图片都…

100份Spring面试问答-最终名单(PDF下载)

上次更新时间&#xff1a;2019年2月11日 这是有关Spring框架的一些最重要问题的摘要&#xff0c;在面试或面试测试过程中可能会要求您回答这些问题&#xff01; 您无需担心下一次面试的机会&#xff0c;因为Java Code Geeks在这里为您服务&#xff01; 您可能会被问到的大多数…

3.1 unittest简介

3.1 unittest简介 前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG。python里面也有单元测试框架-unittest,相当于是一个python版的junit。python里面的单元测试框架除了unittest&#xff0c;还有一个pytest框架&#xff0c;这个用的比较少&#xff0c;后面有空再继…

织梦其他模型使用联动类型地区联动

官方模型的联动类型只能模型是在【独立模型】或者官方默认的【分类信息】模型下使用&#xff0c;其他模型下使用无效&#xff0c;我们来让联动类型支持所有模型。 添加联动地区类型字段 内容模型管理 - 文章模型(或者其他模型) - 添加新字段 字段名称 和 数据类型 千万别搞错了…

使用IntelliJ IDEA进行热部署

最近&#xff0c;在PrimeFaces论坛PrimeFaces IDE Poll中进行了投票&#xff0c;以投票赞成用于开发PrimeFaces应用程序的最佳IDE。 最多人投票支持NetBeans。 NetBeans和Eclipse是免费的IDE。 我最喜欢的IDE IntelliJ IDEA Ultimate不是免费的&#xff0c;我认为这就是为什么在…

创梦天地关嵩:借力腾讯云,打造文娱新生态——云+未来峰会回顾

欢迎大家前往腾讯云社区&#xff0c;获取更多腾讯海量技术实践干货哦~ 今年腾讯云未来峰会主题的关键词是“焕启”&#xff0c;这是包含无限希望的两个字&#xff0c;让人倍感振奋。“焕启”是什么意思&#xff1f;在我的理解中&#xff0c;“焕启”本身就是激活&#xff0c;激…

【缓存清理工具】缓存清理软件_电脑缓存清理软件

产品介绍 有很多种比如来自网页和windows等,缓存如果不经常清理会使你的机器运行速度变慢&#xff0c;缓存清理工具可以帮你最多程度的清理垃圾文件而且速度也很快&#xff0c;有了它的帮助让你爱机清理彻底&#xff0c;运行更加顺畅&#xff01;主要能清理&#xff1a;所有应…

c语言转义字符空格符号,C语言 转义符\t占用几个空格

这个问题&#xff0c;在你学习编程过程中可能会考虑到&#xff0c;有时为了字节对齐而使用转义符中\t,但是到底\t占用几个空格呢&#xff1f;下面我们首先通过程序来体验下&#xff0c;然后在总结#include int main(){printf("123456\t123\t45\n");printf("12\t…

[探索] 利用promise做一个请求锁

在最近开发小程序的过程中&#xff0c;遇到一个需求&#xff0c;就是请求的时候header需要带上accessToken, accessToken是通过登陆接口返回的参数&#xff0c;可能会出现过期的情况&#xff0c;则需要重新登陆&#xff0c;所以每次加载小程序都会进行一次本地储存的accessToke…

【Python】[02]初识Python

Python3的下载安装 根据书上的推荐&#xff0c;我将学习和使用Python3版本&#xff0c;从www.python.org网站&#xff0c;根据对应的操作系统&#xff0c;下载合适的Python版本即可 我的是64位系统&#xff0c;所以我选择的是Windows x86-64 executable installer 下载完成后双…

自己写了一个多行文本溢出文字补全的小库, 说不定你会用得到的

有些时候产品会有这么个需求&#xff0c;希望给文章或者帖子给一个摘要&#xff0c;最多3行&#xff0c;或者其它行数&#xff0c;超出3行会补上...。当然这种很简单&#xff0c;用css可以搞定。但是遇上要求多点的产品&#xff0c;希望补上的是...查看全文&#xff0c;这样的话…

C语言简单程序情话,给你一份程序员的“科技情话”,赶在双十一前脱单吧

说起程序员很多人第一印象都是呆板木讷但你们不知道程序员的浪漫花样给你一份程序员的“科技情话”赶在双十一前&#xff0c;和你暗恋的人表白吧~程序员的情书Void missing_you()For(timemeet_you;;time)Missing_you()自从遇见你&#xff0c;就没有一刻不想你-----------------…

记录好用的软件

【摘要】 平时用的很舒服的软件&#xff0c;做个记录&#xff0c;一直更新。 【Snipaste截图】 一般都会用QQ的截图工具&#xff0c;但是现在很少登QQ&#xff0c;Snipaste截图也很好用&#xff0c;只需要按F1即可截图。 【ScreenToGif】 ScreenToGif可以录制屏幕生成Gif文件。…

阿里90后工程师,如何用AI程序写出双11打call歌?

来自阿里巴巴的90后工程师芦阳&#xff0c;用业余时间开发了一套人工智能作词程序——名字叫做MusicGo&#xff0c;这个程序经过芦阳的“喂养”和设定&#xff0c;可以自己写饶舌歌曲。芦阳加入菜鸟也才仅仅四个月&#xff0c;这是他第一次参加双11备战。作为一名新员工&#x…

编程历史

编程历史&#xff1a; 编程语言的历史早于真正意义的计算机的出现。19世纪就有"可编程的"织布机和钢琴弹奏装置出现&#xff0c;它们都是领域特定语言(DSL)的样例。 从1951年2014年&#xff0c;人类一共发明了256种编程语言&#xff0c;每一种语言的出现都带有某些新…

vue结合ueditor富文本编辑器(换肤分离)

需求 (PC端)做一个可以使用图片上传、视频上传、文件上传功能的富文本组件&#xff0c;简单的文本编辑发布功能,采用socket方式传输&#xff0c; 做法 当时看到这个需求&#xff0c;我觉得是不难的,就去github上找富文本编辑器&#xff0c;因为项目比较急&#xff0c;当时我…

使用MyBatis框架时发现的一些小bug

在大配置MyBatis.xml中&#xff1a; 不能有空节点属性 &#xff0c;否则启动服务器后点击登录没有反应。 异常问题&#xff1a; ause: java.sql.SQLException: Value 0000-00-00 00:00:00 can not be represented as java.sql.Timestamp&#xff1a; 解决办法&#xff1a; HTT…

JSF Tomcat配置示例

JavaServer Faces (JSF)是一个Web应用程序框架&#xff0c;旨在简化基于Web的用户界面的开发集成。 它用于开发和构建服务器端用户界面组件&#xff0c;并在Web应用程序中使用它们。 JSF技术基于Model-View-Controller (MVC)架构&#xff0c;并且通过在页面中使用可重用的UI组件…