You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向含params dynamic[]参数的CallDbStoredProcedure方法传参?

问题:如何向接收params dynamic[]的方法传递不同类型参数?

我正在开发的应用里,之前的开发者编写了一个接收params dynamic[]参数的方法CallDbStoredProcedure。我熟悉dynamic类型,但不清楚如何向该方法传递参数。该方法定义如下:

public async Task CallDbStoredProcedure(string procedureId, string collectionName, params dynamic[] spParameters)
{
   // Makes stored procedure call to Cosmos Db
}

我推测使用dynamic是因为每个参数可以是不同类型,这也符合我的实际场景。我需要传入两个参数:

  • Guid类型的@itemId
  • int类型的@statusId

请问该如何构造params dynamic[]参数并传入CallDbStoredProcedure方法?


解决方案

因为方法的最后一个参数使用了params关键字,你有两种简单的传参方式:

方式1:直接传入多个参数(推荐)

params关键字支持直接传入多个不同类型的参数,编译器会自动将它们打包成dynamic[]数组,无需手动构建:

Guid itemId = Guid.NewGuid();
int statusId = 1;

await CallDbStoredProcedure("你的存储过程ID", "目标集合名称", itemId, statusId);

方式2:手动构造dynamic[]数组传入

如果需要动态生成参数列表(比如参数数量不固定的场景),可以先创建dynamic[]数组并赋值,再传入方法:

Guid itemId = Guid.NewGuid();
int statusId = 1;

dynamic[] spParams = new dynamic[] { itemId, statusId };
await CallDbStoredProcedure("你的存储过程ID", "目标集合名称", spParams);

两种方式都能满足需求,第一种更简洁,适合参数数量固定的场景;第二种灵活性更高,适配参数动态变化的情况。


内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:28:20