如何在函数C#中添加数组类型参数
Posted
技术标签:
【中文标题】如何在函数C#中添加数组类型参数【英文标题】:How to add array type parameters in a function C# 【发布时间】:2020-11-06 20:41:11 【问题描述】:我从 ASP.Net 中的一个项目开始,我有一个函数来执行登录,它有 userId
和 password
作为参数,但我需要创建一个数组参数,因为这将允许我使用不同的userId
和它们各自的password
,我正在使用的函数如下:
public string Login(string sessionTicket, string dataSource, string userId, string password, int features)
object[] results = this.Invoke("Login", new object[]
sessionTicket,
dataSource,
userId,
password,
features);
return ((string)(results[0]));
除了上述之外,我将在下面的方法中使用这个函数,我还要将参数xtUser
和xtPass
转换成一个数组:
string sessionTicket = axServicesInterface.Login("",
GlobalVariables.dataSource,GlobalVariables.xtUser, GlobalVariables.xtPass,
Convert.ToInt32(EAxType.AxFeature_Basic));
登录功能参数图:
登录数组需要能够交替我每个请求的两个用户
更新:
尝试回答问题,但出现错误提示“上下文中不存在用户 ID”
public class LoginDetails
public string userId get; set;
public string password get; set
public string Login(string sessionTicket, string dataSource, LoginDetails[] loginDetails, int features)
object[] results = this.Invoke("Login", new object[]
sessionTicket,
dataSource,
userId,
password,
features);
return ((string)(results[0]));
他们知道我所做的是否符合我的需要,这就是我可以解决当前错误的方法。
【问题讨论】:
您在更新中调用的方法很可能期望在userId
和password
的集合上。迭代您为数组中的每个项目调用 Invoke 的新数组。
我怀疑你会想要foreach
而不是loginDetails
。
@JonP 你能解释得更好吗
@SebastianSalazar 您现在将 LoginDetails 数组(我假设它已填充?)传递给“外部”方法,但从未在其中使用它。
您的问题不太清楚:您想使用多组用户名和密码登录吗?为什么要使用 Invoke?如果希望使用字符串参数调用方法,则不能只传递一个数组并期望对数组中的每个值都执行它
【参考方案1】:
请添加以下类(让您拥有多组用户名和密码):
public class LoginDetails
public string UserName get; set;
public string Password get; set
那么不是传递string userId, string password
,而是传递LoginDetails[] loginDetails
作为参数。
【讨论】:
以上是关于如何在函数C#中添加数组类型参数的主要内容,如果未能解决你的问题,请参考以下文章