params关键字载入空值的陷阱

在编写方法时,不确定这个方法要传入多少个参数,或者随着程序的开发速度,该方法的参数会发生很大变化,在C#中引入了params关键字,使用params修饰object类型的数组并作为方法的参数类型,可以解决方法参数不确定的问题。但是这里有一个问题,这个参数列表中的某个值不确定是否为空,就会发生运行时错误。

static void Main(string[] args)
{
Program p = new Program();
p.ShowInfo("asdf", 100, null);

}

private void ShowInfo(params object[] parameters)
{
string strOutPut = string.Empty;
for (int i = 0; i < parameters.Length; i++)
{
strOutPut += parameters[i].ToString() + "\r\n";
}
Console.WriteLine("参数列表:\n{0}",strOutPut);
Console.Read();
}

分析:当传第三个参数时报错,在调用ToString方法时产生了空引用异常。

注意:在方法声明中params 之后不允许有任何其他的参数,并且在方法声明中只允许一个params关键字。

时间: 2024-08-02 22:53:41

params关键字载入空值的陷阱的相关文章

params关键字

每个C#函数都允许有个参数带params关键字,在调用的时候可以不给他传值,也可以给他传值,还可以给他传多个值 注意事项: ·一个函数中只能一个参数带params关键字:·带params关键字的参数必须是最后一个参数:·带params关键字的参数类型必须是一维数组: class aaa    {        static void Main(string[] args)        {            Console.WriteLine(Test("111"));//不传值,

Python Special Syntax 10:列表综合,不定数参数传递(C#的params关键字)

列表综合 参见:http://woodpecker.org.cn/abyteofpython_cn/chinese/ch15s03.html #-*-coding:utf-8 def ttt(value1,*args): for i in args: value1+=i print(value1) def tt2(**args): iSum=args['a']+args['b'] print iSum ttt(10,1,2,3,4) tt2(a=3,b=4) 输出:207 Python Spec

c#中params关键字应用

c#params应用 params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 关于参数数组,需掌握以下几点. (1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后: (2)参数数组必须是一维数组: (3)不允许将params修饰符与ref和out修饰符组合起来使用: (4)与参数数组对应的实参可以是同一类型的

C# params关键字

params数组的要点 C#开发语言中 params 是关键字,可以指定在参数数目可变处采用参数的方法参数.在函数的参数数目可变而执行的代码差异很小的时候很有用! 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Sum(1,2,"a"); 6 Console.ReadKey(); 7 } 8 static void Sum(params object[] numStack) 9 { 10 for (int i =

[C#-4] params关键字

说明 使用 params 关键字可以指定采用数目可变的参数的方法参数. 可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组. 还可以不发送参数. 如果未发送任何参数,则 params 列表的长度为零. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例 public class MyClass { public static void UseParams(params int[] list) { for (int

用C#中的params关键字实现方法形参个数可变

个人认为,提供params关键字以实现方法形参个数可变是C#语法的一大优点.在方法形参列表中,数组类型的参数前加params关键字,通常可以在调用方法时代码更加精练. 例如,下面代码: [csharp] view plaincopy class Program { static void Main(string[] args) { Console.WriteLine(Sum(1)); Console.WriteLine(Sum(1, 2, 3)); Console.WriteLine(Sum(1

c#中可变参数params关键字学习

引用 https://www.cnblogs.com/maowp/p/8134342.html 基础知识 1.概念 params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 2.注意项 1.若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后. 2.不允许将params修饰符与ref和out修饰符组合起来使用. 3.

mysql 空值的陷阱(转)

转自http://blog.csdn.net/eroswang/article/details/8529817 Mysql数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值不一定为空 空值是一个比较特殊的字段.在MySQL数据库中,在不同的情形下,空值往往代表不同的含义.这是MySQL数据库的一种特性.如在普通的字段中(字 符型的数据),空值就是表示空值.但是如果将一个空值的数据插入到Times

C#中三个关键字params,Ref,out

关于这三个关键字之前可以研究一下原本的一些操作 using System; using System.Collections.Generic; using System.Text; namespace ParamsRefOut { class Program { static void ChangeValue(int i) { i=5; Console.WriteLine("The ChangeValue method changed the value "+i.ToString())