C# 有没有可能有一个函数可以接受任意数量的任意类型的变量?

C# 有没有可能有一个函数可以接受任意数量的任意类型的变量?,c#,asp.net,C#,Asp.net,我有一个简单的函数,它接受一个字符串并用该字符串向我发送电子邮件(该函数用于调试实时站点) 当然,要计算函数并发送多个变量,我会: Functions funcs = new Functions(); funcs.errEmailV1(someVariableThatisAString+", "+someIntVariable.ToString() +"..."); 我后来改进了我的函数,以便能够更快地调用它 Functions funcs = new Functions(); funcs.e

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

当然,要计算函数并发送多个变量,我会:

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);  
}
Functions funcs=新函数();
funcs.errEmailV2(someVariableThatIsString,someIntVariable.ToString());
public void errEmailV2(参数字符串[]路径)
{
字符串strVars=“”;
//循环的一个相当简化的版本:
for(int i=0;i

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

使用
params object[]
和:


嗯,
params object[]
就像
string.Format
使用什么?(然后使用
string.Join
而不是现有的循环)我本来打算使用扩展方法,但是@jonskeetanswer看起来更干净。这一点也不奇怪:)Jon Skeet的答案在comment@LiquidCore,您不必是Jon Skeet就可以建议
参数对象[]
。在这种情况下这很明显。你知道的越多越好,谢谢!我无法编辑你的答案(因为我需要再加6个字符),但你在最后一行的第二行缺少了第三个括号。@LiquidCore实际上它不是一个简单的副本,而是属于注释的代码。@HimBromBeere哦哇,你添加了“object”和“.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);  
}
Functions funcs = new Functions();
funcs.errEmailV2(someVariableThatisAString, someIntVariable);

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