今天的内容主要是参数数组,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. SQLSERVER 2008 R2版本密钥(摘)

    开发版32位:MC46H-JQR3C-2JRHY-XYRKY-QWPVM开发版64位:FTMGC-B2J97-PJ4QG-V84YB-MTXX8 工组版:XQ4CB-VK9P3-4WYYH-4HQX3 ...

  2. 转:php的memcache和memcached扩展区别

    原文来自于:http://www.cnblogs.com/yjf512/p/3778287.html 作者:叶剑峰 老生长谈的问题了.我这里就整理一下. memcache的文档在:http://pec ...

  3. 【HDOJ】2531 Catch him

    简单BFS.就是要把所有的D点当成一个整体考虑(整体移动). /* 2531 */ #include <iostream> #include <queue> #include ...

  4. 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O

    五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O 五种I/O 模式:[1]        阻塞 I/O          ...

  5. C#中实现邮件发送功能

    public static int sendmail(string to, string body,string subject) { try { int nContain = 0; ///添加发件人 ...

  6. 网络流(最大流):POJ 1149 PIGS

    PIGS Time Limit: 1000ms Memory Limit: 10000KB This problem will be judged on PKU. 64-bit integer(整数) ...

  7. 后缀自动机(SAM) :SPOJ LCS - Longest Common Substring

    LCS - Longest Common Substring no tags  A string is finite sequence of characters over a non-empty f ...

  8. 【单调队列】Vijos P1771 瑞士轮 (NOIP2011普及组第三题)

    题目链接: https://vijos.org/p/1771 题目大意: 给定2N个人(N<=100 000)和其初始分数.能力值(能力两两不同),比赛M次(M<=50),每次PK都是按分 ...

  9. Java---JUnita、注解与类加载器详解以及实例

    JUnit软件测试技术(工具) 在项目中建立专门用户测试的包结构. 在Junit中,通过@Test注解,可以运行一个方法. ★ Junit注解说明 使用了@Test注解应该满足以下条件: 1) 必须是 ...

  10. 高效算法——Most financial institutions 贪心 H

    H - 贪心 Crawling in process... Crawling failed Time Limit:3000MS     Memory Limit:0KB     64bit IO Fo ...