Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> глобальный динамический массив 
:(
    Опции темы
CompWorm
Дата 24.7.2008, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



здрасте!
я в шарпе не шарю, поэтому задаю туповатый с виду вопрос))
а как создать глобальный динамический массив, который видно из всех классов?
если можно, с простеньким примером... smile 
я пробовал создать отдельный класс Globals в отдельном файле и в нем объявить массив как public static, но то-ли руки у меня кривые, то ли это прокатывает только с простыми переменными...


--------------------
PM MAIL   Вверх
informatik
Дата 24.7.2008, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: нет
Всего: 6



В .NET есть понятие -  пространство имен (namespace). Чтобы использовать твой массив в твоем проекте, то нужно либо чтобы твой класс Global был в пространстве имен твоего проекта, и файл класса находился в составе проекта. Либо если твой класс находится в составе другого проекта, то надо надо добавить ссылку(reference) на этот проект и обращаться к нему по полному имени, т.е. через пространство имен в котором он находится (Namespace.Global) и.т.д... А еще можно после добавления ссылки с помощью директивы USING, которая есть в начале каждого класса, объявить нужное пространство имен.

Надеюсь написал то что надо..
--------------------
namespace informatik
PM MAIL   Вверх
HalkaR
Дата 24.7.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Код

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Collections;

namespace Globals
{
    public static class Globals
    {
        public static ArrayList List = new ArrayList();
    }
}
namespace ConsoleApplication9
{
    static class Program
    {

        [STAThread]
        static void Main()
        {
            ArrayList list = global::Globals.Globals.List;
        }
    }
}

Модификатор global:: позволяет видеть ваш класс из любого неймспейса.
Только надо чтобы сборка в которой лежит класс Globals была в References вашей сборки.
PM MAIL   Вверх
CompWorm
Дата 24.7.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



informatik,
спасибо, довольно внятно пояснил.

HalkaR,
спасибо за пример.

 но, скажем, если у меня несколько классов в пределах одного неймспейса должны юзать один и тот же массив, можно обойтись без постоянного упоминания класса-обёртки Globals... то есть можно ли объявить "переменную нейм спейса", а не в классе Globals ?
типа как-то так:
Код

namespace MyNamespace1
{
 public static int32 [][] test;

...
    class one
    {
         test ...
    }
}

namespace MyNamespace2
{
    class two
    {
         MyNamespace1.test ...
    }
}




--------------------
PM MAIL   Вверх
informatik
Дата 24.7.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: нет
Всего: 6



Цитата

но, скажем, если у меня несколько классов в пределах одного неймспейса должны юзать один и тот же массив, можно обойтись без постоянного упоминания класса-обёртки Globals... то есть можно ли объявить "переменную нейм спейса", а не в классе Globals ?


Нет так нельзя.. 

Да вообще думаю это не к чему... 
--------------------
namespace informatik
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.