两种方法,以不同的方式做同样的事情

时间:2017-10-16 07:14:38

标签: c#

嗨,我是编程的新手,我得到了这段代码:

public void Print(out string dataToPrint)
{
    //code....
    dataToPrint = "some text here"
}

public string dataToPrint()
{
    //code
    return "some text here"
}

今天将使用哪一个,专业程序员将使用哪个示例以及性能方面最快?

1 个答案:

答案 0 :(得分:-1)

在性能方面几乎没有区别,您可以通过在循环内运行每个方法并测试每个方法可以采用的时间来尝试它,或者使用benchmark.net

我使用以下代码尝试使用Benchmark.net:

public class Class1
{
    public void Print(out string dataToPrint)
    {
        dataToPrint = "some text here";
    }

    public string Print()
    {
        return "some text here";
    }

    [Benchmark]
    public void one()
    {
        string data;
        Print(out data);
    }

    [Benchmark]
    public void two()
    {
        Print();
    }
}

class Program
{
    static void Main(string[] args)
    {
        var summary = BenchmarkRunner.Run<Class1>();
    }
}

结果是: result of benchmark 正如你所看到的差别太小,所以你不应该考虑你的情况,但我更喜欢第二种形式的可读性,但是,对于其他情况,尝试使用相同的程序并找出答案。