重用变量

时间:2011-09-27 14:34:45

标签: c# variables

我正在研究需要多次调用相同方法的项目,但使用不同的参数。

我可以使用相同的变量,还是必须声明另一个变量?

例如:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(domains["ServiceLogin"]);
            req.Method = "GET";
            req.Referer = "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0";
            req.CookieContainer = new CookieContainer();
            HttpWebResponse response = (HttpWebResponse)req.GetResponse();
            CookieCollection cookies = response.Cookies;
            response.Close();

等..

我是否使用req变量或声明req2例如

  req = (HttpWebRequest)WebRequest.Create(domains["ServiceLogin"]);
  req.Method = "POST";
  req.CookieContainer = myCookieContainer;

这样做的最佳方式/做法是什么?

9 个答案:

答案 0 :(得分:19)

局部变量很便宜;不必要地重复使用它们没有令人信服的好处。因此:编写代码以使每个变量具有明确的目的,并且该目的由其名称描述。一旦每个变量的名称描述了它的目的,就会更清楚地知道是否需要一个变量或多个变量。

答案 1 :(得分:5)

你可能会考虑不这样做,并将它们各自命名,以便你知道每个请求的责任是什么,即reqLoginreqData 。从长远来看,这使得我认为代码更具可读性。

答案 2 :(得分:5)

我会去宣布一个新的变量。这样一来,如果有人碰巧快速看到代码,那么他们就不会感到困惑,或者不得不花费很长时间来解决这两个不同的请求。

答案 3 :(得分:4)

我想我会提取一种或者不同的方法,必须看到更多的代码 例如

var getDataRequest = CreateGetDataRequest();

var postRequest = CreatePostRequest();

或者这可能是一个带有一些参数的方法

答案 4 :(得分:4)

变量很便宜,除非它们令人困惑。变量最重要的特征之一是它的范围,它在重用时会被混淆。不要专注于重用某些东西,因为它具有相同的类型;这就像重复使用餐巾纸一样(eew!)。专注于他们解决的问题(衬衫与我朋友的泄漏)。

答案 5 :(得分:3)

我将是明确的:从不重用这样的变量。它阻止了对问题的正确隔离,并使代码更难以阅读,更难以改变。想想以后是否要重构代码(你应该已经这样做了)并将每个部分封装在自己的方法中。重用相同的变量只会妨碍......

答案 6 :(得分:2)

恕我直言,在这种情况下没有最佳做法。对于您和将来的程序员来说,代码应该是可读和方便的。

答案 7 :(得分:1)

如果它们不重叠,您也可以使用相同的变量。它没有什么区别,所以选择最具可读性的东西。

每次调用CreateWebRequest时,您都在创建一个新的对象,这才是最重要的。

答案 8 :(得分:1)

这实际上取决于问题的答案“我以后仍然提到req是否重要?”换句话说,您是否需要再次拨打req之外的任何内容?如果答案为否,请不要声明新变量。如果答案是肯定的,那么将所有请求存储在List<HttpWebRequest>或其他可以为您管理请求的数据结构中。