2017-07-31 65 views
1

我面對這種情況多次,而不是退出知道什麼是最好的做法:什麼不在使用語句中添加?

選項1

SomeType x = null; 
using (var db = new DbEntities()) 
     { 
     x = db.GetInfo(); 
     } 
DoSomethingWith(x); 

選項2

using (var db = new DbEntities()) 
     { 
     var x = db.GetInfo(); 
     DoSomethingWith(x); 
     } 

顯然OP2短甚至可以進一步壓縮,但是當使用聲明是等式的一部分時,這是否是最好的做法?

而且超出了這個具體的例子,什麼一般到using語句中添加?

+0

我更喜歡第一個片段。 – itsme86

+1

這不是關於更喜歡哪一個,而是關於代碼的作用,特別是'DoSomethingWith'方法。但幾乎總是你可能會使用第一個選項。 – DavidG

+1

不確定這是否爲基於意見。如果'x'是懶惰評估選項1(否則更高性能)將導致一些重大問題。 – BradleyDotNET

回答

0

如果DoSomethingWith(x)只能在using語句中使用,請選擇Option 2,否則使用Option 1.如果您想知道是否有任何優化可以從兩種選擇中獲得,請糾正我,如果我錯了,不明白爲什麼會有。