определение статических массивов - PullRequest
6 голосов
/ 04 января 2011

Я искал приличное определение статических массивов.Я пытался использовать источники MSDN и C #, но не могу найти определение.Это приводит примеры, но без определений ...

Кто-нибудь знает какие-либо ссылки или определения и характеристики статического массива, пожалуйста?

Ответы [ 3 ]

10 голосов
/ 04 января 2011

Когда вы говорите о «статическом массиве», вы на самом деле говорите о двух разных вещах.

Одним из них будет ключевое слово 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];
5 голосов
/ 04 января 2011

Возможно, вы имеете в виду массивы фиксированного размера?

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

Если это так, вы получите больше результатов поиска, используя в качестве запроса массивы фиксированного размера:)

2 голосов
/ 04 января 2011

Нет ничего (что я знаю), что особенного в статических массивах как таковых, поэтому, возможно, у вас возникают проблемы с поиском хороших записей о них. Поправьте меня, если я ошибаюсь, но мне интересно, интересует ли вас эта «статическая» часть? По сути, статический означает, что член существует на уровне класса, а не на уровне экземпляра, поэтому статический массив будет массивом, который принадлежит классу (а не экземпляром класса).

Пример:

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

     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...