函数的定义与调用&&参数数组

来源:互联网 发布:淘宝发送链接怎么发 编辑:程序博客网 时间:2024/05/18 06:24

函数的定义与调用

一个最基础的C#程序结构是这样的

using System;using ....;namespace xxx{    class Program    {        static void Main(string[] args)        {        }    }}

当我们要定义函数的时候,要在类下定义函数

namespace xxx{    class Program    {        static void Write() //void表示空的返回值,就是不需要返回值        {            //这里是函数体也是方法体,可以是0行也可以是多行            Console.WriteLine("Text output from the function");            return; //这个语句用来结束当前方法        }        static void Main(string[] args)        {            Write(); //函数的调用,函数名加上括号,括号内写参数        }    }}

调用函数的时候,若函数定义时有参数,那么调用时必须加上参数,否则编译无法通过。

在结构体内构造函数

struct CustomerName    {        public string firstName; //public不能省略,否则main函数无法使用该变量        public string lastName;        //在结构体内构造函数        public string GetName()        {            return firstName + " " + lastName;        }    }

在结构体内构造函数的好处是

当要调用结构体内的成员时,可以直接在结构体内构造函数,每次要输出成员变量的值就可以直接调用该函数

结构体内构造函数的一个例子

struct CustomerName    {        public string firstName; //public不能省略,否则main函数无法使用该变量        public string lastName;        //在结构体内构造函数        public string GetName()        {            return firstName + " " + lastName;        }    }struct Vector3    {        public double x;        public double y;        public double z;        public double Distance()        {            return Math.Sqrt(x * x + y * y + z * z);        }    }class Program    {        static void Main(string[] args)        {            //CustomerName myName;            //myName.firstName = "lymon";            //myName.lastName = "z";            //Console.WriteLine("My name is:" + myName.firstName + " " + myName.lastName);            //Console.WriteLine("My name is:" + myName.GetName());            Vector3 vector;            vector.x = 3;            vector.y = 4;            vector.z = 5;            Console.WriteLine("The distance is:" + vector.Distance());            Console.ReadKey();        }    }

其中可以看出使用结构体内的构造函数,代码看上去更简洁,并且可以重复使用。


参数数组

参数数组和数组参数是两种不同的概念

数组参数:调用数组参数的方法的时候,传入的实参必须要为定义的数组类型。
参数数组:调用参数数组的方法的时候,该方法会将传入的实参自动转换成数组。两者之间的不同在于函数调用的方式不同

放出部分代码来更直观的表现参数数组和数组参数之间的区别

//这是数组参数static int Sum(int[] array) //如果一个函数定义了参数,那么调用这个函数时,一定要传递相对应类型的参数,否则编译器不通过        {            int sum = 0;            for(int i = 0; i < array.Length; i++)            {                sum += array[i];            }            return sum;        }//这是参数数组        static int Plus(params int[] array) //参数数组,参数数组和数组参数的不同,在于函数调用的方式不同        {            int sum = 0;            for (int i = 0; i < array.Length; i++)            {                sum += array[i];            }            return sum;        }        static void Main(string[] args)        {            int sum = Sum(new int[] { 2, 12, 3, 12, 3, 412, 2 });            Console.WriteLine(sum);            int plus = Plus(12, 123,41, 2394, 1284); //参数数组帮我们减少了创建数组的过程            Console.WriteLine(plus);            Console.ReadKey();        }

创建参数数组的时候,形参要使用params关键字定义。

int sum = Sum(new int[] { 2, 12, 3, 12, 3, 412, 2 });
int plus = Plus(12, 123,41, 2394, 1284);
可以看出,参数数组使用起来更为方便,不用再去将数据定义为数组类型。

原创粉丝点击