我有一个类的构造函数:
public void GenericProblem(string _operation, int _problems, int _min, int _max) {
private static int operation = (_operation || 1);
}
我在开场{
收到错误,指出需要关闭}
。我可以确保这不是由此之外的任何事情引起的,因为如果我删除变量operation
,则错误消失。也许我只是愚蠢但我无法弄清楚。
答案 0 :(得分:4)
private static
只是类成员的有效修饰符。如果要声明局部变量(方法的本地变量),则只需编写int operation
:
public void GenericProblem(string _operation, int _problems, int _min, int _max) {
int operation = (_operation || 1);
}
答案 1 :(得分:0)
通常使用static
变量在类的所有实例之间共享其值。
public class Foo
{
public static int Boo=10;
public void AddTen()
{
Boo += 10;
}
}
public class Program
{
public static void Main(string[] args)
{
var f1 = new Foo();
f1.AddTen();
Console.WriteLine(Foo.Boo);// Output:20
}
}
因此static
字段的范围是整个类型。这就是为什么你不能在方法中声明static
字段的原因。方法有自己的范围,并且在方法中声明的变量必须在方法的边框上不可访问。所以你应该遵循@poke的建议声明一个局部变量:
int operation =...;
另一件事是你不能在string
和int
(_operation || 1
)之间应用逻辑运算符。请检查此msdn reference。