可变数目参数:params关键字
2008-02-01 15:47
561 查看
开发过程中,某个方法需要的参数可能是不确定的,我们可以利用C#里的params关键字定义可变数目参数的方法。
下面是我在开发中利用sqlHelper封装的执行事务的方法
public class DataSource {
public static string _strConnection="server=192.168.1.95;database=zzb30dxa;uid=sa;pwd=100080";
//AppTools.GetConnectString("BeidaSoft.DXA.Adapter.exe.config")+"";
//获得数据库连接对象
private static SqlConnection GetConnection(string strConnection) {
SqlConnection conn=new SqlConnection(strConnection);
conn.Open();
return conn;
}
/// <summary>
/// 执行事务 使用了params关键字
/// </summary>
/// <param name="strSqls">sql 语句</param>
/// <returns>true or false</returns>
public static bool ExecuteTransaction(params string[] strSqls) {
SqlConnection conn=null;
conn=GetConnection(_strConnection);
using(SqlTransaction tran=conn.BeginTransaction()) {
try {
for(int i=0; i<strSqls.Length; i++) {
//使用sqlHelper
DAL.SqlHelper.SqlHelper.ExecuteNonQuery(tran, CommandType.Text, strSqls[i]);
}
tran.Commit();
return true;
} catch {
tran.Rollback();
return false;
} finally {
if(conn.State==ConnectionState.Open)
conn.Close();
conn.Dispose();
}
}
}
}
方法的使用
string strSql1="update ...";
string strSql2="delete ...";
string strSql3="select ...";
bool boolReturn=DataSource.ExecuteTransaction(strSql1,strSql2,strSql3);
ExecuteTransaction方法接受的是string类型的数组,但是我们并没有定义一个数组作为参数,因为有params关键字,C#编译器会
通过一系列指令将strSql1,strSql2,strSql3构造为一个数组,之后再调用ExecuteTransaction方法的代码。
使用params关键字的注意事项
1. 该参数必须为一维数组
2. 方法的最后一个参数才能使用
3. 接收任意类型的参数,将参数类型改为object 类型
4. params关键字使代码更加优雅,但是调用方法前首先有个构造数组的过程,性能上肯定会有影响(多数时候可以不用考虑)
下面是我在开发中利用sqlHelper封装的执行事务的方法
public class DataSource {
public static string _strConnection="server=192.168.1.95;database=zzb30dxa;uid=sa;pwd=100080";
//AppTools.GetConnectString("BeidaSoft.DXA.Adapter.exe.config")+"";
//获得数据库连接对象
private static SqlConnection GetConnection(string strConnection) {
SqlConnection conn=new SqlConnection(strConnection);
conn.Open();
return conn;
}
/// <summary>
/// 执行事务 使用了params关键字
/// </summary>
/// <param name="strSqls">sql 语句</param>
/// <returns>true or false</returns>
public static bool ExecuteTransaction(params string[] strSqls) {
SqlConnection conn=null;
conn=GetConnection(_strConnection);
using(SqlTransaction tran=conn.BeginTransaction()) {
try {
for(int i=0; i<strSqls.Length; i++) {
//使用sqlHelper
DAL.SqlHelper.SqlHelper.ExecuteNonQuery(tran, CommandType.Text, strSqls[i]);
}
tran.Commit();
return true;
} catch {
tran.Rollback();
return false;
} finally {
if(conn.State==ConnectionState.Open)
conn.Close();
conn.Dispose();
}
}
}
}
方法的使用
string strSql1="update ...";
string strSql2="delete ...";
string strSql3="select ...";
bool boolReturn=DataSource.ExecuteTransaction(strSql1,strSql2,strSql3);
ExecuteTransaction方法接受的是string类型的数组,但是我们并没有定义一个数组作为参数,因为有params关键字,C#编译器会
通过一系列指令将strSql1,strSql2,strSql3构造为一个数组,之后再调用ExecuteTransaction方法的代码。
使用params关键字的注意事项
1. 该参数必须为一维数组
2. 方法的最后一个参数才能使用
3. 接收任意类型的参数,将参数类型改为object 类型
4. params关键字使代码更加优雅,但是调用方法前首先有个构造数组的过程,性能上肯定会有影响(多数时候可以不用考虑)
相关文章推荐
- c#实验笔记- params关键字可以指定可变数目的变量 for循环可以初始化多个参数
- 可变数目参数----关键字params的使用
- params 实现可变数目方法参数
- params关键字给方法传递可变数量的参数
- c# 可变数目参数params实例
- c# 可变数目参数params实例
- C#中params 关键字可以指定在参数数目可变处采用参数的方法参数
- c# 可变数目参数params实例
- 可变数目参数 params
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [2] C# 实现
- 用MSIL剥开C#的外衣(一):方法参数ref、out、params和lock、for和foreach关键字
- C# 基础加强(一)可变参数params、索引器
- C# 参考之方法参数关键字:params、ref及out - Hunts.C - 博客园
- C#方法的参数关键字:ref、out、params
- python学习笔记 可变参数关键字参数**kw相关学习
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [1] CLR 支持
- (C#)方法参数关键字:ref、out、params详解
- C# 参数关键字(params,ref,out)
- C#中的参数关键字params
- 可变数目的函数参数