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