C#-函数基础知识

目录

1. 前言

2. 定义和使用函数

2.1 返回值

2.2 参数 

2.2.1 参数匹配

2.2.2 参数数组

2.2.3 值参数和引用参数

2.2.4 输出参数

3. 变量的作用域

3.1 其他结构中变量的作用域

3.2 局部函数

4. Main()函数

5. 结构函数

6. 函数的重载

7. 委托


1. 前言

        某些任务通常需要在一个程序中的多个位置执行(e.g.查找数组中的最大值),此时可以把几乎相同的代码按照需要放在应用程序中,但若要进行小改动,则需要修改多个代码块,很不方便。函数则可以规避上述问题。

函数:
1.可提供在应用程序中的任何一处执行的代码块
2.可将相关代码组合在一起,提高代码的可读性(应用程序变短了)
3.可创建多用途的代码,让它们
对不同的数据执行相同的操作
4.可采用参数形式为函数提供信息,以返回值的形式得到函数的结果

举例:有一个函数返回数组中最大的值,可在代码的任何位置使用这个函数,且在每个地方都使用相同的代码行。只需要提供这一次代码。参数就是一个要搜索的数组,返回值就是数组中的最大值,同一函数可以处理不同的数组

函数的定义:函数名、返回类型、一个参数列表
                   
 参数列表制定了该函数需要的参数数量和参数类型 

函数的名称和参数共同定义了函数的签名  


2. 定义和使用函数

一般以PascalCase形式编写函数名,即每个单词的首字母大写。

不与调用代码交换任何数据的简单函数定义组成:
1.两个关键字:static(和面向对象的概念相关) 和 void(表明函数没有返回值)
2.函数名后跟圆括号,如Write()
3.一个要执行的代码块,放在花括号中

        static void Write()//定义函数Write
        {
            Console.WriteLine("Text output from function.");
        }

相对地,Main()函数是是应用函数主体


2.1 返回值

return只能返回一个值

有返回值的函数会最终计算得到这个值。
与变量一样,返回值也有数据类型
GetString()返回的是字符串
GetVal()返回的是double,可在数学表达式中使用

double myVal;
double multiplier = 5.3;
myVal = GetVal() * multiplier;

当函数返回一个值时,必须采用以下两种方式修改函数:
1.在函数声明中指定返回值的类型,但不使用关键词void
2.使用return关键字结束函数的执行,把返回值传送给调用代码。

从代码角度看,对于Console应用程序函数,其使用返回值的形式如下所示

static <returnType> <FunctionName>()
{
    ...
    return <returnValue>;
}

<returnType>可以是任何类型
其中<returnValue>必须是<returnType>类型的值,或者可以隐式转换为该类型

当代码执行到return语句时,程序会立即返回调用代码,后面的代码都不会执行
return也可以放在for循环中,if块或其他结构中,会使该结构立即种植,函数也立即终止
所有处理路径都必须执行到return语句中,否则

static double Getval()
{
    double checkVal;
    // checkVal assigned a value through some logic
    if (checkVal < 5)
        return 5.7
    return 3.2;
}//这是合法的

static double Getval()
{
    double checkVal;
    // checkVal assigned a value through some logic
    if (checkVal < 5)
        return 5.7
}//这是不合法的

 执行一行代码的函数可使用一个功能:表达式体方法(expressio-bodied method)

static <returnType> <FunctionName> () => <myVal1 * myVal2>;

其中=>是Lambda箭头

举例:Multiply()函数

static double Multiply (double myVal1, double myVal2)
{
    return myVal1 * myVal2;
}

static double Multyply (double myVal1, double myVal2) => mVall * myVal2;

2.2 参数 

当函数接受参数时,必须指定以下内容
1.函数在其定义中指定接受的参数列表,以及这些参数的类型
2.在每个函数调用中提供匹配的实参列表
        形参(parameter):函数定义的一部分
        实参(argument):由调用代码传递给函数

        两个术语通常被简单地称为参数

可以有任意数量的参数,每个参数都有类型和名称

static <returnTyoe> <FunctionName> (<paramType> <paramName>, ...)
{
    ...
return <returnValue>;
}
//示例代码

static double Product (double param1, double param2)
{
    ...
    return param1 * param2;
}
//例子

st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值