Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForms.Если не глобальные переменные, то что же? / 23 сообщений из 23, страница 1 из 1
01.12.2013, 14:28
    #38484974
student13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
1. Есть кнопка, текст которой меняется "Показать/Скрыть". Есть необходимость иметь глобальный флаг private Boolean IsShown, на который не только текст кнопки ориентирован, но и многое другое.
2. Есть TadaTable или коллекция, в общем, хранилище, в которое загружаются данные из базы и с ними в рахных методах разное происходит. Опять же, где всю эту радость глобально хранить, кроме как не в private DataTable dtTable?

Натыкался на некоторые общие рекомендации по заворачиванию таких переменных в методы, которые их возвращают. Не понимаю, как это здесь поможет.

Если оформить их в виде свойств, get-set, то что изменится, кроме появления дополнительных строк в коде?

Неужели сборщик мусора как-то лучше в этом случае работать будет?
...
Рейтинг: 0 / 0
01.12.2013, 14:34
    #38484978
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Если что, это не я под другим ником троллю.
...
Рейтинг: 0 / 0
01.12.2013, 14:56
    #38484991
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
student13,
ну первое, как вы понимаете слово глобально, глобально в контексте формы? ( судя по вопросу это так)
или глобально в контексте приложения ( если бы вопрос был задан в этом ключе, то форма тут вообще не уместна, так же как и Украина)
...
Рейтинг: 0 / 0
01.12.2013, 15:40
    #38485031
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
Ну а что тут тролить, если переменная участник типа и никуда ее выставлять не надо обычное закрытое поле подойдет, если
объект участвует в логике ( обособленной логике в контексте типа - расширяет тип) или обладает специфической логикой доступа , или является шаблонным для проектирования чего то, то ему место в базовом классе в виде поля.., тем более в контролах это шаблонное решение.
- расширение функционала контрола
...
Рейтинг: 0 / 0
01.12.2013, 15:47
    #38485040
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степи,

Как я понял, в вопросе DataTable берется из внешнего объекта.
...
Рейтинг: 0 / 0
01.12.2013, 15:52
    #38485044
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE, dt общая для всего приложения? - расстрелять..
...
Рейтинг: 0 / 0
01.12.2013, 16:08
    #38485055
student13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степи, пока что речь идёт о контексте формы. Более масштабного делать пока не приходилось.

Значит, глобальное приватное поле на форме это норм?
...
Рейтинг: 0 / 0
01.12.2013, 16:33
    #38485071
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
student13,
почему вы его называете глобальным, это обыкновенное приватное поле типа ( а что такое не глобальный?), что тут может быть криминального? обычная практика...
...
Рейтинг: 0 / 0
01.12.2013, 17:11
    #38485100
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степиALOTE, dt общая для всего приложения? - расстрелять..
Ну справедливости ради, стоит отметить, что внешняя дататабля, совсем не значит единственная дататабля на все приложение.
...
Рейтинг: 0 / 0
01.12.2013, 17:24
    #38485106
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
ну приведите пож. код. где та биля, общая для всего приложения, и где биля внешняя но не общая для всего приложения..
посмотрим троль вы или нет, а то мус сомневался...
...
Рейтинг: 0 / 0
01.12.2013, 17:36
    #38485118
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степи
Эээ???
Вообще то это вопрос не кода, а архитектуры. А то, у вас получается, внешние били вообще нельзя использовать под страхом расстрела. Непонятно как MVC существует только. А доказывать свою не тролльность излишне упитыным троллям, чета нет желания. Хотя и интересна дальнейшая фантазия, чую, сейчас начнете что то интересное и дальше придумывать.
...
Рейтинг: 0 / 0
01.12.2013, 18:00
    #38485141
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
гыгы прав был мсу - троль

Одна на всех
Код: c#
1.
2.
3.
4.
 public static class Utils
    {
        public static DataTable DataTable
    }


Внешняя только на экземпляр
Код: c#
1.
2.
3.
4.
5.
6.
7.
 class FooClass
    {
        public FooClass(DataTable dataTable)
        {
            ...........
        }  
    }
...
Рейтинг: 0 / 0
01.12.2013, 18:17
    #38485150
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
А вот формальный вопрос, скорее лингвистический
можно ли назвать ту биля внешней?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 public static class Utils
    {
        public static DataTable GetDataTable(string tablename)
        {
            ...........
        }

    }

    class FooClass
    {
        private DataTable _dataTable = Utils.GetDataTable("blalala");

    }
...
Рейтинг: 0 / 0
01.12.2013, 19:05
    #38485174
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Внешней к чему? К классу FooClass да. Только, текст команды или имя таблицы для били, как внешний параметр совсем не обязательны. Это Вас кто то обманул. А при таком подходе один статический объект отвечающий за все наборы данных из БД, да можно много смешного напрограммировать.
...
Рейтинг: 0 / 0
01.12.2013, 19:45
    #38485202
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
авторК классу FooClass да
нет..
...
Рейтинг: 0 / 0
01.12.2013, 20:01
    #38485219
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
авторА при таком подходе один статический объект отвечающий за все наборы данных из БД
вы про это?
Код: c#
1.
2.
3.
4.
public static class Utils
    {
        public static DataTable DataTable
    }


так почему я не прав?
просто Яdt общая для всего приложения? - расстрелять..
...
Рейтинг: 0 / 0
01.12.2013, 20:12
    #38485228
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степиALOTE,
авторА при таком подходе один статический объект отвечающий за все наборы данных из БД
вы про это?
Код: c#
1.
2.
3.
4.
public static class Utils
    {
        public static DataTable DataTable
    }


так почему я не прав?
просто Яdt общая для всего приложения? - расстрелять..
А я и не говорил что Вы не правы. Я говорил, что внешняя, не значит общая, почувствуйте разницу. А тут описан классический Золотой Молоток.
Кстати, чем же та дататбля к классу не внешняя?
...
Рейтинг: 0 / 0
01.12.2013, 20:25
    #38485236
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
а где вы видите внешность
Код: c#
1.
2.
3.
4.
5.
 class FooClass
    {
        private DataTable _dataTable ;

    }
...
Рейтинг: 0 / 0
01.12.2013, 21:17
    #38485264
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степи,
Стоп, да в таком разрезе, если передавать имя таблицы то это не внешняя.
А вот если так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static class ModelForCurrentTask
    {
        public static DataTable DataForCurrentTask()
        {
            ...........
        }

    }


То вполне себе внешняя будет.
...
Рейтинг: 0 / 0
01.12.2013, 21:41
    #38485277
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
ну и где тут инициализация поля через объект, это обыкновенный статический метод, через него инициализируется внутреннее
закрытое поле ничего более, параметры у метода могут быть, могут не быть. - кабы все дело во вкусе...
...
Рейтинг: 0 / 0
01.12.2013, 22:39
    #38485316
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Где-то в степи,
А при чем тут инициализация через объект. В один класс возвращает дататабл через свойство, любому(ну или не любому) внешнему, который попросит. А про параметры то я ничего плохого не говорил. Я говорил что имя таблицы или текст запроса в качестве входящего параметра передавать не особо хорошо. Если, конечно, ORM не пишем.
...
Рейтинг: 0 / 0
01.12.2013, 23:33
    #38485338
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
ALOTE,
Ой надоели вы мне,
авторНу справедливости ради, стоит отметить, что внешняя дататабля, совсем не значит единственная дататабля на все приложение.
давай начнем с этого, внешняя переменная - это глобальная переменная видимая отовсюду в пределах namespace, извини ничего личного, это повелось до нас..., так вот она единственная, то что я написал за Вас, это не верно в терминологии,
во втором случае там тоже может стоять указатель на глобальную биля, можем говорить про типы инициализации ( через конструктор,
статическую Ф, Ф экземпляра, рефлектором или еще как,) не более, хочешь работать с статикой - работай, но не трогай терминологию,
то что закрытое поле инициализируется статической функцией ничего тут шаманского нет, а вот Вы кричите про внешнею переменную
так спросите самого себя, если поле инициализируется внешней переменной, то и другие объекты (вне типа поля) имеют право иметь до него доступ и где тут какой доступ на указатель полученный в результате инициализации приватного поля, поле закрытое, при следующем обращении к статическому методу, мы получим совершенно другой указатель,??
а если Вы скажете что получим тот же указатель, то та бл* статическая - что и требовалось доказать..
...
Рейтинг: 0 / 0
02.12.2013, 09:16
    #38485501
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms.Если не глобальные переменные, то что же?
Ну для того что бы не надоедал, нужно вникать в слова оппонента, а не придумывать их самому за него. Я с самого начала написал, что дататабл берется из внешнего объекта, и дальше подчеркивал, что внешней она является относительно класса, а о том что она глобальная это Вы уже сами придумали.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForms.Если не глобальные переменные, то что же? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]