博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#拾遗(二、函数)
阅读量:5039 次
发布时间:2019-06-12

本文共 1393 字,大约阅读时间需要 4 分钟。

1. 参数数组。C#的特色,允许函数参数的最后指定一个参数数组,可以使用个数不定的参数调用,用params关键字定义

static double SumVals(params double[] vals) {      double sum = 0;      foreach (double i in vals)      {          sum += i;       }       return sum;}//调用SumVals(1,2,3);

 2. 值参数和引用参数。引用参数使用关键字ref指定。函数定义和函数调用时都要使用ref

static void ShowDouble(ref int val){    val *= 2;    Console.WriteLine("val doubled is {0}", val);} //调用,src必须非const,src必须初始化赋值。 int src = 1; ShowDouble(ref src);

 3. 输出参数。使用方式和引用参数类似,使用out关键字,不同于ref, out参数可以是未赋值的变量,并且建议是,有值反而会被修改而没意义。

static double MaxVal(double[] vals, out int maxIndex){    double MaxVal = vals[0];    maxIndex = 0;    for (int i = 1; i < vals.Length; i++)    {        if (MaxVal < vals[i])        {            MaxVal = vals[i];            maxIndex = i;        }    }    return MaxVal;}//使用double[] dVals={
1,2,3,4,5,10,73,100};int dIndex;Console.WriteLine("{0},{1}", MaxVal(dVals, out dIndex),dIndex);

4. 函数的重载。函数的签名包括函数的名称及其参数,包括参数的类型和关键字(out/ref),不包括函数的返回类型。

5. 委托。一种把引用存储为函数的类型。委托的生命类似于函数,不带函数体,使用关键字delegate。委托的声明指定了一个返回类型和参数列表,委托大多用于事件处理。

delegate double ProcessDelegate(double v1, double v2);static double Multiply(double v1, double v2){     return v1 * v2;}static double Divide(double v1, double v2){     return v1 / v2;}//使用ProcessDelegate process;process = new ProcessDelegate(Divide);//第一种用法process = Multiply;//第二种用法process(1, 2);

 

转载于:https://www.cnblogs.com/fengyunyue/p/5868286.html

你可能感兴趣的文章
【BZOJ】3142: [Hnoi2013]数列
查看>>
http初探
查看>>
elasticsearch的安装
查看>>
__next__()
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
UpdatePanel 内控件 更新“外的”控件【转】
查看>>
mybatis中&gt;=和&lt;=的实现方式
查看>>
Python面向对象03/继承
查看>>
java序列化和反序列化
查看>>
绝对定位
查看>>
flink源码编译(windows环境)
查看>>
dpkg 删除 百度网盘 程序
查看>>
服务器nginx安装
查看>>
std::nothrow
查看>>
rest-framework 分页器
查看>>
JQuery(一)安装&选择器 样式篇
查看>>
浏览器的DNS缓存查看和清除
查看>>
浏览器跨域问题
查看>>
HTML5 input控件 placeholder属性
查看>>