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