C# 通过调用另一个方法将参数传递给一个方法。是否存在性能差异?

C# 通过调用另一个方法将参数传递给一个方法。是否存在性能差异?,c#,performance,methods,memory-management,C#,Performance,Methods,Memory Management,例如,我可以编写下一个代码 var key = ConvertToKey<TViewModel>(); var page = typeof(TView); _ = _pages.TryAdd(key, page) ? true : throw new InvalidOperationException($"ViewModel already registered '{key}'"); 还是像这样 _ = _pages.TryAdd(ConvertToKey<T

例如,我可以编写下一个代码

var key = ConvertToKey<TViewModel>();
var page = typeof(TView);
_ = _pages.TryAdd(key, page)
    ? true
    : throw new InvalidOperationException($"ViewModel already registered '{key}'");
还是像这样

_ = _pages.TryAdd(ConvertToKey<TViewModel>(), typeof(TView))
    ? true
    : throw new InvalidOperationException($"ViewModel already registered '{ConvertToKey<TViewModel>()}'");
我感兴趣的是在运行时间方面的区别。从上面的示例及其简单返回类型中提取。让我们设想有100或1000种类似的方法。哪种拼写更适合于更好的性能?毕竟,在第二种情况下,结果也会保存下来以供传递。但是没有像第一种情况那样显式地创建变量


也许这只是为了可读性?在一种情况下,写一行是很方便的,在另一种情况下,声明一个局部变量是很方便的。

第二种方法在异常情况下会比较慢,因为它调用ConvertToKey两次。考虑到你已经处于痛苦之中,我抛出了一个异常情况,这不太可能是重要的

除此之外,它们应该具有相同的执行时间。我肯定会把重点放在可读性上。

我肯定会把重点放在可读性上。你只是在谈论这个案例吗?或者,一般来说,关于在编写与否之间的选择。@Viewed:好吧,在这种情况下当然可以-但一般来说,我会一直编写可读性最高的代码,直到有证据表明性能有显著差异为止。