|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.09.2012, 11:11 | #1 |
Пользователь
Регистрация: 29.07.2012
Сообщений: 98
|
Глобальная переменная
Код:
|
10.09.2012, 11:22 | #2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
Код:
|
10.09.2012, 11:38 | #3 |
Пользователь
Регистрация: 29.07.2012
Сообщений: 98
|
ок, спс, посоветуйте справку по классам где скачать можно на комп. использую SharpDevelop
|
10.09.2012, 13:44 | #4 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
private String oo, помещенная в класс вне методов, еще не является глобальной. Так она имеет видимость только в пределах данного класса, но зато видна во всех его методах. Вот если бы она была public или public static - в первом случае она вызывалась бы через объект (экземпляр) класса, во втором случае вызывалась бы так: MainForm.oo ,- то она была бы доступна из других классов и могла бы называться глобальной.
Не советуют делать специальный класс, содержащий только глобальные переменные, т.к. в каждом классе они непременно будут появляться при разработке программы, и там их размещать логичнее, да и найти проще по принадлежности (не просто oo, а MaiForm.oo). Еще одна причина - глобальные переменные присутствуют в памяти все время сессии и занимают ее, даже когда не используются. Во многих случаях вместо public можно обойтись локальными переменными методов и переменными private, internal или protected, жизненный цикл которых короче, и передавать эти переменные в методы других классов параметрами. Но совсем без public переменных и методов вряд ли кому-то удается обойтись, т.к. полно случаев, когда переменная должна быть одновременно видна из нескольких объектов, которые могут ее изменять и использовать. Почитать, конечно, нужно, хотя бы по своему средству разработки, но лучше сначала почитать про язык C# как таковой. Литература в продаже есть. Можно найти источники и в инете - но это хуже, на мой взгляд, чем иметь под рукой книжку хотя бы первые несколько месяцев. Как говорил мой первый руководитель бригады: "Не горюй, трудно только первые 25 лет". Правда, первые 25 лет давно прошли, но легче не стало, наоборот. Последний раз редактировалось Гаврилов; 10.09.2012 в 14:36. Причина: грамматика |
10.09.2012, 15:19 | #5 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Все дело в том, что C# не поддерживает глобальные переменные...Поэтому не стоит путать человека... Подробнее тут
public и public static - поля класса, а не глобальные переменные...
Будь проще и люди к тебе потянутся
|
10.09.2012, 18:16 | #6 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Вот уж, действительно, spamer.
До Вашего выступления человеку все было ясно, а теперь Вы его, начинающего, действительно запутали. Во-первых, по приведенной Вами ссылке нигде не говорится, что глобальных переменных C# не поддерживает, и не случайно, потому что такое заявление было бы неправильным. (Так что, Вы напрасно отнимаете у всех нас время!) Во-вторых, в документации MSDN применяется понятие "уровни доступности", для public это "неограниченный доступ". Скажите пожалуйста, чем слово "неограниченный" отличается от "глобальный"? Все программеры от сотворения мира называют глобальными переменные (и не только переменные), видимость которых - всё приложение или модуль. Именно это только и нужно было человеку пояснить, да показать, как это устроить в коде. Да, действительно, когда появились такие понятия, как "пространство имен", а в одном "решении" стало можно держать более одного проекта, одного модификатора доступа public для "глобальности" стало недостаточно, и старое доброе понятие "глобальные переменные" можно стало применять только с оговорками, глобальные они в области ли видимости класса, пространства ли имен или приложения. Однако на практике все применяют по привычке слово "глобальная переменная", и без оговорок, потому что не все такие буквоеды. Но зачем все это знать новичку с самого начала, если он уже и так знает традиционное понятие "глобальная переменная"? Потом сам бы дошел до остального. Иначе ему сейчас надо на минуточку объяснить чуть ли не полкурса программирования в С#. Ох уж мне эти знатоки! Лишь бы блеснуть. |
10.09.2012, 19:57 | #7 | |||
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Для "знатоков", подобных Гаврилов (который, скорее всего, поленился перейти по ссылке), цитирую msdn:
Цитата:
Цитата:
Цитата:
Советую почитать теорию...
Будь проще и люди к тебе потянутся
Последний раз редактировалось spamer; 10.09.2012 в 19:59. |
|||
10.09.2012, 20:04 | #8 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Будьте проще, спамер!
|
10.09.2012, 20:09 | #9 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Гаврилов, троль что ли?
Будь проще и люди к тебе потянутся
|
10.09.2012, 20:12 | #10 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глобальная переменная = 0 в Worksheet_SelectionChange | smbd | Microsoft Office Excel | 8 | 14.03.2011 15:03 |
Глобальная переменная | mutabor | JavaScript, Ajax | 2 | 31.12.2010 12:23 |
C++ [Глобальная переменная] | Lemo | Помощь студентам | 2 | 26.10.2009 17:49 |
Глобальная переменная для одной формы bcb 2k9 | xLoMMx | Общие вопросы C/C++ | 2 | 16.09.2009 22:20 |
Глобальная переменная в проектном файле. | Nikolaeva | Общие вопросы Delphi | 8 | 23.04.2009 12:31 |