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

本文详细介绍了C#中函数的定义与调用方法,包括无返回值函数、结构体内构造函数等,并通过实例展示了参数数组与数组参数的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数的定义与调用

一个最基础的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);
可以看出,参数数组使用起来更为方便,不用再去将数据定义为数组类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值