2017-04-10 83 views
-2
public partial class Form1 : Form 
{ 

} 

static class Questions 
{ 
    public static var contents = File.ReadAllLines(@"TextFile/Questions.txt"); 
    public static var newRandom = new Random(); 
    public static var randomLine = newRandom.Next(0, contents.Length - 1); 
    public static var questionToAsk = contents[randomLine]; 
} 

全局设置变量,但它潜水我下面的错误:如何使用方法C#

the contexual keyword 'var' ....

变量questionToAsk具有从文本文件的随机线,它被设置。但是当我尝试从SomeOther方法访问它时。我无法称呼它。

这是什么方法?

谢谢你们。

+1

这些不是全局声明的。 –

+0

@OusmaneMahyDiaw你是什么意思? SomeOther是一个班级?基本上SomeOther是一个计时器过去的方法,我不想每隔一秒就设置一个新的问题。我希望你明白我的意思。 –

+0

@ IamThe6目前“SomeOther”方法不在课堂内,这就是我的意思。不过,您需要全局声明“questionToAsk”。 –

回答

1

问题是var你不能使用它们来定义字段和属性,你可以使用它们来定义隐式类型的本地变量。你应该改变类的定义是这样的:

static class Questions 
{ 
    public static string[] contents = System.IO.File.ReadAllLines(@"TextFile/Questions.txt"); 
    public static Random newRandom = new Random(); 
    public static string questionToAsk = String.Empty // Will set it later 
} 

所以,你可以使用类名,Questions像下面的访问这些变量:

public partial class Form1 : Form 
{ 
    int randomLine = Questions.newRandom.Next(0, contents.Length - 1); 
    Questions.questionToAsk = Questions.contents[randomLine]; 
} 

所以,你必须在类Questions下三个静态变量您可以通过使用Questions访问应用程序中任何位置的变量。 variable_name