今天的内容主要是参数数组,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. study note--(Education)

    some good temoplates: A child's education has never been about learning information and basic skills ...

  2. 概率质量函数:怀孕周期的PMF

    __author__ = 'dell' import surveyimport Pmfimport matplotlib.pyplot as pyplot table = survey.Pregnan ...

  3. oracle积累继续

    选出当天的日期的数据 select * from test_table where to_char(datetime, 'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-d ...

  4. Oracle开始从Java运行时中移除JAR包

    早在2012年8月,在Java平台首席架构师Mark Reinhold宣布模块化项目Jigsaw之后不久,JEP 162这一题为“准备模块化”的提案就指出,在Jigsaw项目中为模块化系统开发的代码不 ...

  5. struts2+jquery+json集成

    以下采用struts2+jquery+json模拟一个案例.当点击提交按钮时会把输入的数据提交到后台,然后从后台获取数据在客户端显示. 效果如下: 接下来为struts2+jquery+json集成步 ...

  6. delphi record 内存怎么释放

    delphi record 内存怎么释放 是不需要释放的,除非你使用指针方式生成的.

  7. C# dll玩注入!.net运行时库内置!?

    Contents Introduction Back To Fundamentals Load The CLR Fundamentals Advanced DLL Injection Fundamen ...

  8. 关于Linux

    这是一个2B让我写的关于Linux的一点东西. 其实我对Linux一直都是持有一种很尊敬的态度,作为一个非商业性的操作系统,能够成长成这样简直是不可思议,有一种Dota在游戏界的感觉,很让人佩服.但是 ...

  9. Java nextInt()函数

    nextInt( int num) 能接受一个整数作为它所产生的随机整数的上限,下限为零,比如:nextInt(4)将产生0,1,2,3这4个数字中的任何一个数字,注意这里不是0-4,而是0-3..但 ...

  10. [转]C服务端与java客户端的socket通信注意事项

    http://blog.csdn.net/gaoxin1076/article/details/7671752 Socket网络通讯开发总结之:Java 与 C进行Socket通讯 注意以下问题: 1 ...