c# - 是否可以有一个函数接受任意数量、任意类型的变量?

标签 c# asp.net

我有一个简单的函数,它接受一个字符串并使用该字符串向我发送一封电子邮件(该函数在调试实时站点时使用)

public void errEmailV1(string strVars)
{
    sendEmail("me@email","emailSubject",strVars);  
}

自然地,我会调用函数并发送多个变量:

Functions funcs = new Functions();
funcs.errEmailV1(someVariableThatisAString+", "+someIntVariable.ToString() +"...");

我后来改进了我的函数,以便能够更快地调用它

Functions funcs = new Functions();
funcs.errEmailV2(someVariableThatisAString,someIntVariable.ToString());

public void errEmailV2(params String[] paths)
{
    string strVars="";
    //a rather simplified version of the loop:
    for (int i = 0; i < paths.Length; i++)
    {
        strVars+= paths[i];
    }
    sendEmail("me@email","emailSubject",strVars);  
}

我对此表示怀疑,但是我的 V3 是否可以接受任意数量的字符串、整数和 bool 值(我很少发送任何其他类型),而不必总是添加 ToString() ?

最佳答案

使用params object[]String.Join怎么样? :

Functions funcs = new Functions();
funcs.errEmailV2(someVariableThatisAString, someIntVariable);

public void errEmailV2(params object[] paths)
{
    string strVars= String.Join(", ", paths);
    sendEmail("me@email","emailSubject",strVars);  
}

关于c# - 是否可以有一个函数接受任意数量、任意类型的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40461003/

相关文章:

c# - System.Drawing.Graphics 的默认构造函数是如何移除的?

C# - 从 mySQL 数据库获取数据时出错

c# - 何时保存设置?

c# - 使用 List<string>、Autofixture 创建测试数据

asp.net - 防止双击asp.net按钮

c# - 这是冗余代码吗?

javascript - 在 ASP.NET 网站上将 javascript 放在结束正文标记之前可以吗?

c# - 是否可以在 SelectedIndexChanged 事件触发回发时重新绑定(bind) DropDownList?

ASP.NET Web API knockout 验证

c# - WCF 的字符串太长