【发布时间】:2010-12-06 15:38:01
【问题描述】:
我使用 resharper 并且 resharper 建议我将一种方法声明为静态方法,而另一种方法则不是。但我不明白为什么其他方法不能是静态的?
建议使用静态方法
private static string Prehod(string retazec)
{
var pole = retazec.ToCharArray();
var output = "";
char? temp = null;
for (var i = 0; i < pole.Length; i++)
{
if (temp == null)
{
temp = pole[i];
continue;
}
output += pole[i].ToString() + temp.ToString();
temp = null;
}
return output;
}
不建议使用静态方法
public string HashToString(string hash,int dlzka)
{
var hashChar = hash.Substring(0, dlzka*2);
var retazec = "";
for (var i = 0; i < dlzka*2; i++)
{
if(i%2 != 0)
{
retazec += hashChar.Substring(i, 1);
}
}
return retazec;
}
【问题讨论】:
-
你应该强类型你的变量(即字符串,int),而不是像你一样使用var。 var 主要用于涉及 linq 的特定情况,不应像您那样在 for 循环中使用。
-
@Brann:为什么? Resharper 本身建议这样做,我从来没有遇到过问题。
-
"var" 仍然是强类型,你的类型只是推断出来的。
-
@Brann:您的观点备受争议。检查此对话,例如:stackoverflow.com/questions/236878/…
-
@Brann 为什么?就个人而言,我会按照您的建议明确编写 int、string 等类型,但实际上它/no/ 对代码有影响;变量 /are/ 是强类型的,因为编译器将“var”交换为预期的类型定义。除了对易读性和重构的轻微影响之外,在这里使用 var 并没有任何区别。