C# 运用params修饰符来实现变长参数传递的方法
可变数目参数的好处就是在某些情况下可以方便地对参数个数不确定情况的实现,例如计算任意数字的加权和,链接任意字符串为一个字符串等。看下例子:
public class Test2
{
public static void Main()
{
ShowName("小A"); //这里可以指定任意长度的参数也可以传递不同类型的参数,但要改参数类型为object
ShowName("小A", "小B");
}
public static void ShowName(params string[] names)
{
foreach (string name in names)
{
Console.WriteLine(name);
}
}
}
相关推荐
-
C#中的多线程多参数传递详解
之前做了一个小的应用程序,用的是c#语言,涉及到了多线程的多参数传递,经过查找资料总结了一下解决方案! 第一种解决方案的原理是:将线程执行的方法和参数都封装到一个类里面.通过实例化该类,方法就可以调用属性来实现间接的类型安全地传递多个参数.看如下代码: 复制代码 代码如下: using System;using System.Threading; //ThreadWithState 类里包含了将要执行的任务以及执行任务的方法public class ThreadWithState {//要用到的
-
C#难点逐个击破(1):ref参数传递
一般情况,方法的参数传递是通过值进行传递的,即一个对象作为参数传递给方法使用,该对象便进驻到该参数对象所在指针的内存空间(使用C来描述),也就是该对象在此位置创建了副本,当方法运行结束时,该副本将会被销毁:这种传递方式的使用占据了日常方法传参的绝大多数. 另一种情况是引用传递,它与值传递方式不同,对象传递给方法时对方法参数并没有影响,仍然返回的是受原始参数取值影响的方法,即MethodInstance(ref _refValue)调用 Method(ref _arg)方法,但_refValue对
-
理解C#中参数的值和引用以及传递结构和类引用的区别
值与引用参数之间的区别: 在 C# 中,既可以通过值也可以通过引用传递参数.在调用环境中通过引用传递参数允许函数成员(方法.属性.索引器.运算符和构造函数)更改参数的值,并保持该更改.若要通过引用传递参数,请使用 ref 或 out 关键字. 下面的示例阐释值与引用参数之间的区别: class Program { static void Main(string[] args) { int arg; // Passing by value. // The value of arg in Main
-
一道关于C#参数传递的面试题分析
本文实例分析了一道关于C#参数传递的面试题.分享给大家供大家参考.具体如下: 1.定义一个类MPigeon,调用一个Swap交互函数,问最后实参的结果是什么 类定义: public class MPigeon { public string Name { get; set; } } 交换函数: public void Swap(object a,object b) { object temp=a; a=b; b=temp; } 测试代码: private void button2_Click(o
-
C#传递参数到线程的方法汇总
本文汇总整理了传递参数到线程的方法供大家参考,非常实用,具体内容如下: 首先我们要知道什么是线程,什么时候要用到线程,如何去使用线程,如何更好的利用线程来完成工作. 线程是程序可执行片段的最小单元,是组成运行时程序的基本单元,一个进程有至少一个线程组成.一般在并行处理等待事件的时候要用到线程,如等待网络响应,等待I/O通讯,后台事务处理等情况.使用线程其实很简单,在.net框架下面你首先要定义一个函数来完成一些工作,然后实例化一个线程对象Thread thrd = new Thread(new
-
c#线程间传递参数详解
线程操作主要用到Thread类,他是定义在System.Threading.dll下.使用时需要添加这一个引用.该类提供给我们四个重载的构造函数(以下引自msdn). Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初始化 Thread 类的新实例. Thread (ParameterizedThreadStart, Int32) 初始化 Threa
-
C#实现向函数传递不定参数的方法
本文实例讲述了C#实现向函数传递不定参数的方法.分享给大家供大家参考.具体实现方法如下: using System; class Min{ public int MinVla(params int [] nums){ int m; if (nums.Length == 0){ Console.WriteLine("Error: no arguments."); return 0; } m = nums[0]; foreach ( int val in nums){ if ( val &
-
深入解析C#中的命名实参和可选实参
Visual C# 2010 引入了命名实参和可选实参.利用"命名实参",您将能够为特定形参指定实参,方法是将实参与该形参的名称关联,而不是与形参在形参列表中的位置关联.利用"可选实参",您将能够为某些形参省略实参.这两种技术都可与方法.索引器.构造函数和委托一起使用. 在使用命名实参和可选实参时,将按实参出现在实参列表(而不是形参列表)中的顺序计算这些实参. 命名形参和可选形参一起使用时,您将能够只为可选形参列表中的少数形参提供实参.此功能大大方便了对 COM 接
-
C#和asp.net中链接数据库中参数的几种传递方法实例代码
复制代码 代码如下: #region 参数传递方法第一种 //参数设置方法(第一种) //SqlParameter sp = new SqlParameter("@Name", str_Name); //SqlParameter sp2 = new SqlParameter("@Pwd", str_Pwd); //cmd.Parameters.Add(sp); //cmd.Parameters.Add(sp2); #endregion //简单的一般使用第一
-
C# 使用匿名函数解决EventHandler参数传递的难题
首先,动态生成PictureBox,很简单, PictureBox box = new PictureBox() ; box.ImageLocation = imageRoad ; 其次,给PictureBox添加右键菜单,也不难, ContextMenu menu = new ContextMenu(); box.ContextMenu = menu ; 然后,要给右键菜单增加"删除"项,并实现删除图片事件.这个,比较麻烦. MenuItem item = new MenuItem(
-
asp.net(C#)函数对象参数传递的问题
复制代码 代码如下: class Program { static void Main(string[] args) { TestClass objA = new TestClass(); objA.Name = "I am ObjA"; Console.WriteLine(String.Format("In Main:{0}", objA.Name)); TestFun(objA); Console.WriteLine(String.Format("In
-
c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析
复制代码 代码如下: #define Test using System; namespace Wrox.ProCSharp.ParameterTestSample...{ class ParemeterTest ...{ static void TestInt(int[] ints,int i) ...{ ints[0] = 100; i = 100; } static void TestInt(int[] ints, ref int i)
随机推荐
- VB6实现连接Access数据库的ADODB代码实现方法
- JBuilder2005开发Web应用程序
- Lua中操作字符串的基本方法整理
- iOS实现微信/QQ显示最近拍摄图片的功能实例代码
- 教你如何静默安装ORACLE
- bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
- 解决WPF中空域问题(Airspace issuse)
- php绘制圆形的方法
- php通过文件头判断格式的方法
- PHP 配置open_basedir 让各虚拟站点独立运行
- 使用Python脚本和ADB命令实现卸载App
- js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
- 基于JavaScript实现div层跟随滚动条滑动
- C语言的数组学习入门之对数组初始化的操作
- 深入学习JavaScript中的Rest参数和参数默认值
- JS实现的自定义显示加载等待图片插件(loading.gif)
- Android树形控件的实现方法
- java 根据坐标截取图片实例代码
- 浅谈java中定义泛型类和定义泛型方法的写法
- php微信开发之上传临时素材
