假设我有以下一组静态函数
这里我通过引用发送变量:
public static void ProcessEmailMessage(ref string HTML)
{
ModifyLinks(ref HTML);
AddFakeImage(ref HTML);
}
public static void ModifyLinks(ref string HTML)
{
//modify HTML links
}
public static void AddFakeImage(ref string HTML)
{
//adds an image to the HTML
}
Run Code Online (Sandbox Code Playgroud)
在这里我按值发送变量
public static string ProcessEmailMessage(string HTML)
{
HTML = ModifyLinks(HTML);
HTML = AddFakeImage(HTML);
return HTML;
}
public static string ModifyLinks(string HTML)
{
//modify HTML links
return HTML;
}
public static string AddFakeImage(string HTML)
{
//adds an image to the HTML
return HTML;
}
Run Code Online (Sandbox Code Playgroud)
哪一个更有意义,2之间是否有任何性能差异?
如果可能,避免使用out和ref参数.
使用ref和out参数的方法更难以使用,您需要声明一个变量来保存结果,并且语义更难以理解.性能差异(如果有的话)可以忽略不计.
在这种情况下,Visual Studio中的代码分析可能会发出警告.
有关更详细的说明,请参见http://msdn.microsoft.com/en-us/library/ms182131.