C#数组范围[关闭]

问题描述 投票:-3回答:2

我是因为工作原因而学习C#而且我对C和C ++有所了解,所以我试图尽可能多地跳过理论。我很难搞清楚为什么我不能在Main函数之外定义数组。如果我在Main内部这样做,它可以工作。

我已经尝试了一些超基本数组语法在线教程的代码;不知怎的,我不能让他们工作。

例:

int [] ages;
   ages= new int[2];
   ages [0] = 20; ---> until I fill the array.
c#
2个回答
4
投票

建议,请不要跳过C#理论信息,因为它非常重要。通过阅读编程语言的理论方面,您可以进一步熟悉自己在做和不做的方面的规则。您还可以更好地了解语言的工作原理以及它与CC++的背景有何不同。

如果你说你来自Java背景本来就更有意义,因为它们非常相似,尽管它们在某些方面有所不同。

在C#中,你不能声明这样的语句:

ages = new int[2];
ages [0] = 20;

在班级。相反,它必须封装在一个方法中。但是,您可以在类级别声明int[] ages = new int[2];而不会出现编译错误。

最后,但并非最不重要的是C# Guide是一个很好的起点,因为它将有助于进一步熟悉语言。


0
投票

我想你试图在Program类中声明数组,并且你无法在静态Main方法中引用它。在静态方法中,您只能引用静态。

class Program
{
    static int[] staticFieldArray = new int[10];
    int[] instanceFieldArray = new int[10];

    static void Main()
    {
        staticFieldArray[0] = 10; //compiles fine, you can reference the static from static.
        instanceFieldArray[0] = 10; //comiple error, cant reference instance field from static method.
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.