今天的内容主要是参数数组,C#允许函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中最后一个参数,成为参数数组。

参数数组可以使用个数不定的参数调用函数,可以使用params关键字定义它们。

定义使用参数数组的函数时,需使用下列代码:

static<returnType><functionName>(<p1Type><p1Name>,…,params<type>[]<name>)

{

  …

  return<returnType>

}

使用下面的代码可以调用该函数:

<functionName>(<p1>,…,<val1>,<val2>,…)

其中<val1>和<val2>等都是type类型的值,用于初始化<name>数组。可以指定的参数个数几乎不受限制。唯一的限制就是它们都必须是<type>类型,甚至可以根本不指定参数。

这一点使参数数组特别适合于为在处理过程中要使用的函数指定其他信息。

例如,嘉定有一个GetWord(),它的第一个参数是一个string值,并返回字符串中的第一个单词:

string firstWord=GetWord("This is a sentence.");

其中firstWord被赋予字符串This。可在GetWord()中添加一个params参数,以根据其索引选择另一个要返回的单词。

string firstWord=GetWord("This is a sentence.",2);

假定第一个单词计数为1,则firstWord就被赋予字符串is。

也可以在第三个参数中限制返回字符的个数,同样通过params来实现。

stirng firstWord=GetWord("This is a sentence.",4,3);

此时,firstWord被赋予字符串sen.

class program

{

  static int sumVals(params int[] vals)

  {

    int sum=0;

    foreach(int val in vals)

     {

        sum+=val;

     }

    return sum;

  }

  static void Main(string[] args)

   {

      int sum=sumVals(1,5,2,9,8);

      Console.WriteLine("Summed values={0}",sum);

      Console.ReadKey();

   }

}

其中

 static int sumVals(params int[] vals)

  {

    int sum=0;

    foreach(int val in vals)

     {

        sum+=val;

     }

    return sum;

  }

用关键字 params定义函数sumVals,该函数可以接受任意个int参数(但不接受其他类型的参数)

感觉这个还是不太好理解,明天还需要加强。

C#学习第六天的更多相关文章

  1. 七、Android学习第六天——SQLite与文件下载(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 七.Android学习第六天——SQLite与文件下载 SQLite SQ ...

  2. python学习 第六天课后总结:

    <br class="Apple-interchange-newline"><div></div>       python学习 第六天课后总结 ...

  3. python学习第六天运算符总结大全

    python学习第六天运算符总结大全,玖乐网络(www.96net.com.cn)列出下面详细 1,算术运算符 + 加 - 减 *乘 / 除 % 求模 ** 乘方 // 取整除 - 返回商的整数部分 ...

  4. HTML学习第六天

    HTML学习第六天 一.全局属性 contentEditable属性,控制标签元素的可修改性,默认与“”(空字符串)都代表真,即可编辑 <!DOCTYPE html> <html l ...

  5. iOS阶段学习第六天笔记(数组)

                                                                                                  iOS学习( ...

  6. java web 学习 --第六天(Java三级考试)

    第五天学习在这:http://www.cnblogs.com/tobecrazy/p/3458592.html session对象 当某个用户首次访问web应用系统时,jsp会自动创建出一个sessi ...

  7. Ext JS学习第六天 Ext自定义类(一)

    此文来记录学习笔记 •我们在之前的学习,已经对ExtJS有了一个初步的认识,那么如果要学好ExtJS,对于javascript是必须的,也就是说,对于理解ExtJS底层基础架构的理解也是必须的.那么我 ...

  8. Ext JS学习第六天 Ext_window组件(三)

    此文用来记录学习笔记: 今天再来一个例子巩固一下学习的window: –例2: 在window中添加子组件,并讲解常用查找组件的方式: •重点分析:该实例主要针对于组件的查找进行详细的讲解,在以后的应 ...

  9. 【类与对象】--------java基础学习第六天

    类与对象 1. 对于面向对象的开发来讲也分为三个过程: OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程) 2. 面向对象的基本特征 2.1. 封装:保护内部操作(属性,方法)不被 ...

  10. angularjs学习第六天笔记(指令简介学习)

    您好,由于周末有事情,没哟学习angularjs,几天晚上开始继续学习angularjs,坚持加油每一天.谢谢 接着上周五学习了表单验证以后,今天开始学习angularjs中一个非常重要的模块:指令 ...

随机推荐

  1. KVO初探

    一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知.简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应 ...

  2. oracle 查询dblink的方法

    oracle 查询dblink的方法: SYSDBA登录, sys登录 SELECT * FROM SYS.link$;

  3. Node.js教程

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的服务器端平台.Node.js是由瑞恩·达尔在2009年开发的,它的最新版本是v0.10.36. N ...

  4. BZOJ 1050 旅行

    Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大 ...

  5. Netty4.0学习笔记系列之一:Server与Client的通讯

    http://blog.csdn.net/u013252773/article/details/21046697 本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯 ...

  6. Lua I/0输入输出

    I/O库为文件操作提供了两种不同的模型,简单模型和完整模型.简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件.完整模型则使用显式的文件句柄,并将所有的操作定义为文件句柄上 ...

  7. PHP SPL使用

    转载文章:php遗落的宝石 Rafael Dohms 上面的篇文章 让我惊艳了下,忍不住就翻译了下来,同时补充了部分内容. SPL,PHP 标准库(Standard PHP Library) ,此从 ...

  8. The fundamental knowledge of Node JS.

    D3 JSJava scirpt is an awesome language for Internface Design.All Obejcts in JavaScirpt could be use ...

  9. javascript 路线整理

    前端开发很重要,编写脚本也不容易. 总结我以前的前端学习经历,基本是一团乱麻:css+javascript是在大三自学的,当时自己做课程设计,逼着自己在一个月之内,写了一个半成品的j2ee网站.当时, ...

  10. 【转】Java运算符优先级

    原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...