静态数组的定义

时间:2011-01-04 14:49:10

标签: c# arrays static definition characteristics

我一直在寻找一个不错的静态数组定义。我尝试过使用msdn和c#来源,但似乎无法找到定义。它提供了示例,但没有定义......

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

3 个答案:

答案 0 :(得分:10)

当你谈到'静态数组'时,你真的在​​谈论两个不同的事情。

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

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

因此,static array只是类级别的一个数组,可以容纳多种数据类型。

例如:

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

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

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

Destination one = TravelRoute.possibleDestinations[0];

答案 1 :(得分:5)

您是否可能指固定大小的阵列?

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

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

答案 2 :(得分:2)

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

示例:

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};

     }
}