[C#入门] 函数 | 方法

1 篇文章 0 订阅
1 篇文章 0 订阅

老夫敲代码就是一把梭,我单说我的看法

 

我不管官方是怎么解释和定义的。我单说我的看法,我不要你觉得,我要我觉得!

 

 

1:为了应对项目的复杂性,函数可以将其项目中的某一个节点用函数的形式独立起来。比如,包。假如把人类看做一个程序。那么这个程序在运行中,在不同的场景是要携带不同的东西的。而这些琐碎的东西是可以丢在包里的。包里还可能有钱包、钥匙包、卡包。敲黑板,点题啊,包中用包,暗指函数可以嵌套函数

 

2:为了让项目中的某一个节点具备复用性

(结合现实场景来看,你可以把他理解为U盘。)

 

3:函数就是方法,方法就是函数。就像数组教学篇里的索引和下标。一个意思。

 

 

 

函数语法-语法我会用慢慢专业的形式去表达了

 

<Access Specifier> <Return Type> <Method Name>(Parameter List){   //方法体}

代码模块有左右滚动条,按住不放,左右滑动即可

 

AccessSpecifier

访问修饰符,决定这个方法对于其他成员的可见性。这个概念,萌新可以用钱包、银行卡来理解。钱包,你打开它,你就可以看见。银行卡,你需要去柜台操作才能看见。他们的本质一样,但是可见性不一样.

<ReturnType>

返回类型,方法可以返回一个值,约定这个方法体最终返回给调用方的数据类型,就是由返回类型决定的。比如,年轻的樵夫在过河时,不慎将一把铁斧掉入河中,河神拿了金斧、银斧、铁斧问樵夫掉落的是哪个。河神拿的三把斧子就是返回类型,类型是斧。成年人的世界,当然是全都要。

<MethodName>

很好理解,就是这个方法的名字。方法名字一般描述了这个方法具体的作用。

<Parameter List>

参数列表,需要使用括号包裹起来,可以是多个,也可以是没有。参数算是沟通程序主体和方法体内部的一个衔接,比如樵夫例子中,樵夫掉落的铁斧头。

 

函数在调用时只需要通过函数名字调用即可,如果函数定义了参数,需要传递与之类型相同的参数。

 

 

例子1
我们用计算器来举例子,因为基础的加减乘除运算在实际场景中是会被重复利用的。所以我们可以将其做成四个方法

​​​​​​​

class Program{    static void Main(string[] args)    {        Console.WriteLine(Add(3, 5));//调用并输出Add方法        Console.ReadKey();    }
    //定义了一个加法计算函数,    //其访问修饰符是public static    //返回类型是int    //方法名字是Add,代表这个方法是相加的方法    //参数列表中包含两个参数,numberA和numberB    public static int Add(int numberA, int numberB)    {        return numberA + numberB;    }}

上面这个例子,Add函数修饰符使用了两个。public(全局公用) 和 static(静态)

常规情况下,一个public就够了,但是这里为什么要还要使用static呢?

那是因为函数,其调用Add函数的Main标记了static(静态)。

在同一个类中,静态成员只能访问静态成员,不可以访问非静态成员。

上述代码中,在调用Add方法时,传入了3和5.

在看Add方法的内部,通过return关键字,返回了numberA + numberB

最终输出结果:8

 

 

例子2

再来讲一个嵌套函数的例子,假如要给几个员工发工资。而工资中包含底薪、提成、绩效、考勤、补助、个税、五险一金。那么运用函数是什么样的效果呢?

 

代码中的个税计算可能不够严谨,主要目的是为了展现函数的复用性和可嵌套的特点。

​​​​​​​​​​​​​​

class Program{    static void Main(string[] args)    {        // 汤姆的工资条:底薪、提成、绩效、考勤、补助、五险一金        decimal[] tom = { 3000, 2000, 800, 200, 100, -320 };        // 杰克的工资条:底薪、提成、绩效、考勤、补助、五险一金        decimal[] jack = { 3500, 1800, 800, -200, 100, -320 };
        Console.WriteLine("汤姆的工资:"+ ComputeSalary(tom) + "元");        Console.WriteLine("杰克的工资:" + ComputeSalary(jack) + "元");        Console.ReadKey();    }
    /// <summary>    /// 工资计算函数    /// </summary>    /// <param name="parms_salary">员工工资条</param>    /// <returns></returns>    public static decimal ComputeSalary(decimal[] parms_salary)     {        decimal salary = 0;
        salary += parms_salary[0];//加上底薪        salary += parms_salary[1];//加上提成        salary += parms_salary[2];//加上绩效        salary += parms_salary[3];//加上考勤        salary += parms_salary[4];//加上补助
        //调用计算个税的函数        salary -= PIT(salary);//扣减个税
        salary += parms_salary[5];//加上要扣除的五险一金
        return salary;    }
      /// <summary>      /// PIT 是个税英文(personal income tax)的简写      /// </summary>      /// <param name="money">税前金额</param>      /// <returns></returns>      public static decimal PIT(decimal money)      {          decimal pit = 0;          money -= 5000;//每月收入-5000的免征额度          if (money < 0) {              return 0;//不扣税          }          decimal yearMoney = money * 12;//全年应纳税所得额
          //个税计算          if (yearMoney <= 36000)//全年应纳税所得额超过36000则扣除百分之3的个税          {              pit = money * 0.03m; // 0.03后面的m是为了标记0.03是decimal类型          }          else {              pit = money * 0.1m;//扣除百分之10的个税          }
          return pit;//纳税金额      }
}

PC浏览,可以直接复制这段代码

最终输出结果

汤姆的工资:5747.00元

杰克的工资:5650.00元

 

 

我们来拆解一下例题2。

例题2中,一共三个函数。


Mian函数,控制台程序的入口点。所有代码从这里开始执行

ComputeSalary函数,用来计算工资的函数,要求传入员工的工资条作为参数。

PIT函数,用来计算指定工资金额的个税。要求将本月个人薪资作为参数传递。

 

上述代码在运行过程中,会先调用Mian函数,开始执行程序,其后通过调用ComputeSalary函数传入工资条来计算工资,在ComputeSalary函数中,又调用PIT函数来计算要扣减的个税。最终返回了员工工资。

 

 

其实函数还分为很多类型。

比如构造函数,全局函数,静态全局函数等等。

这里按下不表,萌新先理解最基础的函数运用即可。其他的会在之后的文章中一一讲到。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值