2016-11-07 55 views
2

我有一个简单的函数,将一个字符串与字符串发送电子邮件给我是否有可能具有任何类型的变量的函数?

public void errEmailV1(string strVars) 
{ 
    sendEmail("[email protected]","emailSubject",strVars); 
} 

自然地CAL功能和发送到多个变量我”(调试直播现场,当功能被使用) d:

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("[email protected]","emailSubject",strVars); 
} 

我怀疑它是,但有可能对M y V3可以使用任意数量的字符串,整数和布尔值(我很少发送任何其他类型的数据),而不必总是添加ToString()

+6

嗯,'params对象[]'一样'string.Format'使用? (然后使用'string.Join'而不是你现有的循环。) –

+0

我打算使用扩展方法,但@JonSkeet答案看起来更清晰。并不意外:) –

回答

3

有关使用params object[]String.Join什么:

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

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

Jon Skeet的好副本在评论中回答 –

+6

@LiquidCore,你不必是Jon Skeet建议'params object []'。在这种情况下非常明显。 – haim770

+0

你知道得越多越好,非常感谢! 我无法编辑你的答案(因为我需要驴6个更多的字符),但你错过了第二个最后一行的第三个右括号。 –

相关问题