8

我一直在寻找一个体面的静态数组定义。我试过使用 msdn 和 c# 源,但似乎找不到定义。它给出了例子,但没有定义......

请问有人知道静态数组的任何链接或定义和特征吗?

4

3 回答 3

13

当您谈论“静态数组”时,您实际上是在谈论两个不同的事情。

一个是static关键字。当应用于变量时,这意味着变量存在于该class级别,并且该类型的每个对象都不会获得自己的实例。

Anarray只是一种用于保存某种类型的多个值的数据结构。

因此,astatic array只是一个类级别的数组,可以保存多个某种数据类型。

例如:

在您的TravelRoute班级中,您可能在路线中有一定数量的可能目的地。这些可以这样定义:

class TravelRoute {
    public static Destination[] possibleDestinations = 
           new Destination[]{
                 new Destination("New York"),
                 new Destination("Minneapolis"),
                 new Destination("NParis")
           };
}

这将定义 a 上可能的目的地TravelRoute。然后,您可以像这样访问数组:

Destination one = TravelRoute.possibleDestinations[0];
于 2011-01-04T14:52:20.803 回答
7

您可能是指固定大小的数组吗?

unsafe struct Foo
{
    fixed int Values[8];
}

如果是这样,您将通过使用固定大小的数组作为查询来获得更多搜索结果:)

于 2011-01-04T15:31:20.673 回答
2

静态数组本身并没有什么特别之处(据我所知),这可能就是为什么你很难找到关于它们的好文章的原因。如果我错了,请纠正我,但我想知道它是否是您最感兴趣的“静态”部分?基本上,静态意味着成员存在于类级别而不是实例级别,因此静态数组将是属于类(而不是类的实例)的数组。

例子:

public class Foo
{
   public static int[] Numbers {get; set;}
}

public class Bar
{
   public int[] Numbers {get;set;}
}

public class Program
{
     public void Main()
     {
// NOTE: Foo itself has this array
          Foo.Numbers = new int[]{1,2,3};

// NOTE: it's this particular instance of a Bar that has this array
           Bar bar = new Bar();
           bar.Numbers = new int[]{1,2,3};

     }
}
于 2011-01-04T14:58:16.953 回答