| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Область видимости |
| Автор: tereres 21.4.2006, 10:20 |
| Проблема такая - обьявлен массив static int[,] c = new int[5,5]; в MainForm-е. Когда я заполняю его из TextBox-а в функции Button1Click то там он принимает значения которые я ему присваиваю - но когда он покидает функцию Button1Click - он опять обнуляется... почему? ведь он объявлен как static? |
| Автор: Ignat 21.4.2006, 10:31 |
| Ой что-то мне сдается, что работаешь ты с локальным массивом, а не статическим. Как передаешь его в функцию? |
| Автор: Illuminaty 21.4.2006, 10:45 |
| Ignat, зачем передавать static в качестве параметра? Хотя, проблема, скорее всего, из-за этого. Чтобы понять точнее, нужен код. tereres, выкладывай |
| Автор: a.S.d 21.4.2006, 10:59 |
| tereres, Ты обьявляешь массив в функции Button1Click или в классе MainForm? |
| Автор: ivashkanet 21.4.2006, 10:59 |
А где ты его объявляешь? Если в функции, то при выходе из нее этот экземпляр исчезает, а так как прррр Стоп стоп стоп. Нельзя объявить static переменную, только класс или структуру Как ты умудрился???? Мой компилятор ругается |
| Автор: Ignat 21.4.2006, 11:01 |
static != global (!!!) Статические объекты - объекты, которые имеют постоянный адрес в статической памяти. Но на области видимости это никак не отражается (практически). Добавлено @ 11:03 ivashkanet, static члены класса никто не отменял. |
| Автор: ivashkanet 21.4.2006, 11:07 |
| Добавка Извините, если объявлять static свойство в классе, то оно нормально объявляется Static нельзя объявлять локальную переменную в функции, что и понятно. tereres, а зачем тебе именно статик-поле? Используй обычное! Ведь тебе, я надеюсь, не нужно создавать кучу одинаковых объектов с возможностью связи между собой? Добавлено @ 11:08 Тормазнул, в чем искренне раскаиваюсь Добавлено @ 11:12 Выкладывай код Ждем. |
| Автор: Illuminaty 21.4.2006, 11:20 |
| Ignat, к static можно обратиться ИмяКласса.СтатическоеПоле, а не передавать его в качестве параметра. Я про это написал. |
| Автор: tereres 21.4.2006, 12:22 | ||
static int[,] c = new int[5,5]; объявляю в Main. Вот код всей проги:
|
| Автор: ivashkanet 21.4.2006, 12:52 |
| tereres, ты б еще пол MSDN сюда накопипастил Добавлено @ 13:03 Да и вообще она у тебя какой-то ерундой занимается (см. прикрепленный файл). Открывает и консоль и форму Давай по-существу: 1) как описываешь 2) как изменяешь 3) в каком месте, по-твоему, ошибка |
| Автор: ivashkanet 21.4.2006, 13:09 |
| Ее даже оттестить нормально не получаеться! tereres, в каком формате нужно вводить текстовую строку? Через запятую, сколько штук? Давай приводи ее в нормальный вид, который можно другим показать |