• 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关键字修饰参数

  • 相关阅读:
    Ubuntu下安装mysql
    MySQL聚集索引与非聚集索引
    mysql索引的简单介绍
    Hive数据导入与导出
    hive的基本操作
    hive的数据模型
    29 ArcMap许可服务器点击授权后无法进入下一步
    28 ArcMap 运行特别慢怎么办
    27 ArcMap加载天地图服务一片空白怎么办
    26 Arcpy跳坑系列——ExportToPNG
  • 原文地址:https://www.cnblogs.com/LJLLY/p/9897682.html
Copyright © 2020-2023  润新知