C# 使用变量赋值与重复方法

C# 使用变量赋值与重复方法,c#,string,performance,C#,String,Performance,我想知道。在重复方法或使用唯一赋值与赋值之间编写代码的最有效或正确的方法是什么 // Solution 1 if (!string.IsNullOrEmpty(Files[m].Trim())) { Attachment oAttch = new Attachment(Files[m].Trim()); Msg.Attachments.Add(oAttch); Log.LogAttachment(Files[m].Trim()); } // Soluti

我想知道。在重复方法或使用唯一赋值与赋值之间编写代码的最有效或正确的方法是什么

 // Solution 1
 if (!string.IsNullOrEmpty(Files[m].Trim()))
 {
     Attachment oAttch = new Attachment(Files[m].Trim());
     Msg.Attachments.Add(oAttch);
     Log.LogAttachment(Files[m].Trim());
 }

 // Solution 2
 string file = Files[m].Trim();
 if (!string.IsNullOrEmpty(file))
 {
     Attachment oAttch = new Attachment(file);
     Msg.Attachments.Add(oAttch);
     Log.LogAttachment(file);
 }

我更喜欢解决方案2,我认为这是编写代码的正确方法。但是我想知道,如果我遗漏了一些东西,关于编译器的一些我不知道的东西,关于
C#

如果值在过程中不发生变化,那么最好是单一赋值,也就是你的解2。这是因为重复该方法将增加调用和重新调用该方法以获得相同结果的时间开销。这种用法的第二个好处可能是代码量较少,因为您不需要多次编写
.Method()

但是如果一个方法每次调用时都产生不同的结果,比如
Random.Next()
,那么您必须重复方法调用

因此,这里的关键是真正了解重新调用方法是否会产生任何差异。

#2(最低限度)更具性能,而且(重要的)更具可读性。