在这种情况下更好,返回或参考

use*_*636 5 c# return ref

假设我有以下一组静态函数

这里我通过引用发送变量:

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之间是否有任何性能差异?

DeC*_*Caf 8

如果可能,避免使用out和ref参数.

使用ref和out参数的方法更难以使用,您需要声明一个变量来保存结果,并且语义更难以理解.性能差异(如果有的话)可以忽略不计.

在这种情况下,Visual Studio中的代码分析可能会发出警告.

有关更详细的说明,请参见http://msdn.microsoft.com/en-us/library/ms182131.