语法错误C#未知

时间:2015-08-08 19:28:55

标签: c#

我有一个类的构造函数:

public void GenericProblem(string _operation, int _problems, int _min, int _max) {
    private static int operation = (_operation || 1);
}

我在开场{收到错误,指出需要关闭}。我可以确保这不是由此之外的任何事情引起的,因为如果我删除变量operation,则错误消失。也许我只是愚蠢但我无法弄清楚。

2 个答案:

答案 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 =...;

另一件事是你不能在stringint_operation || 1)之间应用逻辑运算符。请检查此msdn reference