我是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