我一直在寻找一个不错的静态数组定义。我尝试过使用msdn和c#来源,但似乎无法找到定义。它提供了示例,但没有定义......
有人知道静态数组的任何链接或定义和特征吗?
答案 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};
}
}