2016-11-07 53 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個更多的字符),但你錯過了第二個最後一行的第三個右括號。 –

相關問題