我是C#的新手 - 这几乎是我的第一个程序。我正在尝试创建一些公共静态变量和常量以在程序中的任何地方使用。我尝试过的错误方式是将它们声明在同一个命名空间的单独的类中,但它们与主程序的上下文不同。这是一个WPF应用程序。代码如下所示:在C中没有正确设定静态变量值#
namespace testXyz
{
class PublicVars
{
public const int BuffOneLength = 10000;
public static int[] Buff1 = new int[BuffOneLength];
public const int BuffTwoLength = 2500;
public static int[] Buff2 = new int[BuffTwoLength];
private void fillBuff1()
{
Buff1[0] = 8;
Buff1[1] = 3;
//etc
}
private void fillBuff2()
{
Buff2[0] = 5;
Buff2[1] = 7;
//etc
}
}
}
第二个文件:
namespace testXyz
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public static int isInContext = 0;
int jjj = 0, mmm = 0;
private void doSomething()
{
isInContext = 5; // this compiles
if (jjj < BuffOneLength) // "the name 'BuffOneLength' does not exist in the current context"
{
mmm = Buff2[0]; // "the name 'Buff2' does not exist in the current context"
}
}
}
}
我实际的程序是更长的过程。我完全按照所示创建了上述WPF应用程序来测试此问题,并且我得到了这些错误,这些错误也发生在真正的程序中。我真的不想在主程序中填充数组,因为它们很长,这意味着很多滚动。我也想有一个地方可以声明某些公共静态变量。什么是正确的方法来做到这一点?
我不明白你为什么要声明同一个命名空间的两倍? – dcg
这两个块位于项目中的两个不同的.cs文件中。 Visual Studio生成名称空间声明。我在上面的例子中添加了它们。 – Moonling
好的!没有阅读任何地方,所以假设在同一个文件中。 – dcg