2011-01-04 18 views
5

Szukałem przyzwoitej definicji tablic statycznych. Próbowałem używać msdn i źródeł C#, ale nie można znaleźć definicji. Podaje przykłady, ale bez definicji ...Definicja macierzy statycznych

Czy ktoś zna jakiekolwiek łącza lub definicje i cechy statycznego macierzy, proszę?

+1

Może szukasz definicji „statyczna”? http://msdn.microsoft.com/en-us/library/79b3xss3.aspx –

Odpowiedz

10

Kiedy mówisz o "tablicy statycznej", tak naprawdę mówisz o dwóch osobnych rzeczach.

Jednym z nich będzie słowo kluczowe static. Po zastosowaniu do zmiennych oznacza to, że zmienna żyje na poziomie class, a każdy obiekt tego typu nie otrzyma własnej instancji.

An array to po prostu struktura danych do przechowywania wielu wartości pewnego rodzaju.

Tak więc, static array jest po prostu tablicą na poziomie klasy, która może pomieścić wiele typów danych.

Na przykład:

W swojej klasie TravelRoute może mieć określoną liczbę możliwych miejsc w trasie. Mogłyby one być zdefiniowane tak:

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

To będzie zdefiniowanie możliwych miejsc docelowych na TravelRoute. Następnie można uzyskać dostęp do tablicy tak:

Destination one = TravelRoute.possibleDestinations[0]; 
2

Nie ma nic (które znam), który jest specjalnego tablic statycznych, per se, które mogą być, dlaczego masz problemy ze znalezieniem dobrych napisać firm o nich. Popraw mnie, jeśli się mylę, ale zastanawiam się, czy to "statyczna" część, którą najbardziej interesujesz? Zasadniczo statyczny oznacza, że ​​element istnieje na poziomie klasy, a nie na poziomie instancji, więc tablica statyczna byłaby tablicą należącą do klasy (a nie instancją klasy).

Przykład:

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

    } 
} 
4

Czy może oznaczać tablice stały rozmiar?

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

Jeśli tak, dostaniesz więcej wyników wyszukiwania za pomocą stałych tablic rozmiar jak zapytaniu :)

+3

Macierz o ustalonej wielkości jest tym, co ostatecznie zrozumiałem dla statycznej macierzy, więc dziękuję wam za pomoc! był bardzo przydatny. – Simagen

+0

http://msdn.microsoft.com/en-us/library/zycewsya%28v=vs.80%29.aspx – MattDavey