C#方法(用法,参数)

方法:是一种用于实现可以由对象或类执行的计算或操作的成员,是一个已命名的语句集。方法就是把一些相关的语句组织到一起,用来执行一个任务的语句块。比如每个C#程序至少带一个main函数

1.格式:修饰符  返回值类型  方法名称 (参数列表)

{

方法体

}

2.每个方法都有一个名称和一个主体

    方法名称:是一个有意义的标识符,应当描述出方法的用途。

    方法主体:包含了调用方法时实际执行的语句

    修饰符:public ,private, static等等

    返回值类型:void, int ,double等等

    参数列表可为数组

3.用户可以为大多数方法提供一些数据来进行处理,并让其返回一些信息(通常是处理结果)

下面是方法的各个元素:

  • Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
  • Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void
  • Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。
  • Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。
  • Method body:方法主体,包含了完成任务所需的指令集。

For example

 

        //编写一个方法用于计算给定整型数组元素的和
        static int Add(params int[] nums)
        {
            int sum = 0;
            foreach (int outnum in nums) sum += outnum;
            return sum;
        }
        static void Main(string[] args)
        {
            int[] myintArry = { 1, 2, 3, 4, 5 };
            Console.WriteLine(Add(myintArry));
            Console.ReadKey();

当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:值类型,引用类型,输出类型

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

For example

       //编写一个方法用于求平方(没有返回值)
        static void Square(int num)
        {
            num *= num;
            Console.WriteLine("num平方="+num);

        }
        static void Main(string[] args)
        {
            int num = 10;
            Console.WriteLine(num);
            Square(num);
            Console.WriteLine(num);
            Console.ReadKey();

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

ref关键词指定,使用:1.调用函数变量必须非常量;2.调用变量必须初始化。

For example

        //编写一个方法用于求平方(没有返回值)
        static void Square(ref int num)
        {
            num *= num;
            Console.WriteLine("num平方="+num);

        }
        static void Main(string[] args)
        {
            int num = 10;
            Console.WriteLine(num);
            Square( ref num);
            Console.WriteLine(num);
            Console.ReadKey();

输出参数:可以返回多个值

1.执行方式与ref完全一样,关键字为out

For example

       //编写一个方法用于计算输出数组中最大的值
        static int MaxNum(int[] nums, out int MaxNumIndex)
        {
            int maxNum = nums[0];
            MaxNumIndex = 0;
            for (int i = 0; i < nums.Length; i++)
            {
                if (maxNum < nums[i])
                    maxNum = nums[i];
                    MaxNumIndex = i;
            }
             return maxNum;
        }
        static void Main(string[] args)
        {
            //int[] a= { 1, 2, 3, 4, 5 ,6};
            //Console.WriteLine(Add(a));
            //Console.ReadKey();
            int[] a = {1,2,3,5,6,8,9,11};
            int MaxNumIndex;
            Console.WriteLine("最大值max={0},最大值索引是{1}",MaxNum(a,out MaxNumIndex),MaxNumIndex);
            Console.ReadKey();

注:输出变量与引用变量的区别

1.未初始化的变量用作ref非法,而out合法

2.函数调用out参数量,必须把它当作尚未赋值(即可以把已赋值的变量当作out参数,但存储在该变量中的值在方法执行时会丢失)

3.ref,out必须在调用及定义方法时声明

 

posted @ 2019-05-02 11:22  柏林下的星辰  阅读(13030)  评论(0编辑  收藏  举报