2015-08-08 58 views
-2

我有以下类的构造函数:未知的语法错误C#

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

我在陈述一个}需要关闭开口{得到一个错误。我可以保证这不是由于此外的任何事情造成的,因为如果我删除变量operation,错误消失。也许我只是愚蠢的,但我无法弄清楚。

回答

4

private static只是类成员的有效修饰符。如果要声明一个局部变量(本地的方法),那么就写int operation

public void GenericProblem(string _operation, int _problems, int _min, int _max) { 
    int operation = (_operation || 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