powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Конструктор в static классе
25 сообщений из 53, страница 2 из 3
Конструктор в static классе
    #38288911
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кпоследний тренд написания хэлперов в ASP.Net MVC говорит об обратном
Для хелперов static классы прекрасно подходят и МСУ про это сказал.

Алексей КНаследование есть, но без полиморфизма.
Ты что-то путаешь. static классы по определению являются sealed. Единственное что мы там можем "переопределить" это static методы Equals и ReferenceEquals. Пользы от этого лично я не вижу.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38288927
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУневозможность использовать слабосвязность IoC, невозможность использования DI контейнеров,
это им не нужно
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38288930
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileАлексей Кпоследний тренд написания хэлперов в ASP.Net MVC говорит об обратном
Для хелперов static классы прекрасно подходят и МСУ про это сказал.При этом утверждая, что static - зло.

bazileАлексей КНаследование есть, но без полиморфизма.
Ты что-то путаешь. static классы по определению являются sealed. Единственное что мы там можем "переопределить" это static методы Equals и ReferenceEquals. Пользы от этого лично я не вижу.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class A
{
    public static void F1()
    {
    }
}

class B : A
{
    public static void F2()
    {
        F1();
    }
}
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38288932
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУневозможность использовать слабосвязность IoC, невозможность использования DI контейнеров,
это им не нужноДа, это нам не нужно.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38288951
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПри этом утверждая, что static - зло.
В одних ситуациях зло, в других нет. Это так трудно осознать?

Алексей Кbazile...
static классы по определению являются sealed.
...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class A
{
    public static void F1()
    {
    }
}

class B : A
{
    public static void F2()
    {
        F1();
    }
}


Это не static классы. Попробуй такой пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
static class A
{
    public static void F1()
    {
    }
}

static class B : A // Ошибка компиляции
{
    public static void F2()
    {
        F1();
    }
}
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38288965
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileАлексей КПри этом утверждая, что static - зло.
В одних ситуациях зло, в других нет. Это так трудно осознать?Лично меня особо беспокоит два недостатка static. А Вас?
bazileЭто не static классы. Попробуй такой пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
static class A
{
    public static void F1()
    {
    }
}

static class B : A // Ошибка компиляции
{
    public static void F2()
    {
        F1();
    }
}

Это не важно. Важно что там static-методы.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38288984
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭто не важно. Важно что там static-методы.
Важно так как мы обсуждаем static классы, а не классы со static методами.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289086
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУdefragmentatorМСУ, у нас так пишут.
Плохих программистов сейчас много.

defragmentatorА в чём суицид-то?:)
Проблемы при работе в многопоточной среде, в веб приложениях, в веб сервисах, невозможность использовать слабосвязность IoC, невозможность использования DI контейнеров, невозможность наследования и прочее, прочее, прочее... Мало?
Я использую static класс для работы в многопоточной среде, с веб-сервисами и пока никаких проблем не заметил.
А с чего Вы взяли, что должны быть проблемы?
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289107
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorskyANA,

Ну как бы чтение настроек лучше выполнять в предсказуемом месте проекта:)
defragmentatorА с чего Вы взяли, что должны быть проблемы?
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289232
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorМожно ли и нужно ли писать конструктор в Static - классе (C#)?
Ведь использование static подразумевает отсутствие экземпляра объекта?
Не только отсутствие, если лень тип объявлять запечатанным , вполне допустим хак с пустым конструктором типа.
А вообще проблема ушла в прошлое, на четвертом появился сахар - lazy ( хоть и ругают меня за это), там даже есть
для гурманов -double checked locking,
Я разделяю беспокойство мсу по поводу многопоточности, это вполне реально при статической инициализации
тут не имелось ввиду конкурентный доступ к чему- то, он будет всегда если есть потоки, это все на совести программиста
лочить доступ или тащить в апартаменты подготовленные данные типа сессии единицы работы, подготовленной заранее в укромном месте..
ну и про производительность, ( не сказал никто ) это ущербно в разгар работы приложения вытаскивать тип - конструктор
при первом обращении и инициализировать синглтон, более разумно при старте приложения делать эти операции ( дорогие)
тогда выходит ---- и конструктор типа не нужен, мы его можем про инициализировать снаружи при старте..
А вообще есть есть куча фишек setting, для этого..
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289240
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289380
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorЯ использую static класс для работы в многопоточной среде, с веб-сервисами и пока никаких проблем не заметил.
А с чего Вы взяли, что должны быть проблемы?Проблемы начнутся, когда захочется сделать статическое поле. Доступ к нему придётся синхронизировать. Про мёртвые блокировки между статическими конструкторами уже сказали выше. Ну и в отсутствии полиморфизма тоже нет ничего хорошего. Больше вроде как проблем нет.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289381
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileАлексей КЭто не важно. Важно что там static-методы.
Важно так как мы обсуждаем static классы, а не классы со static методами.Убери static, сделай приватный конструктор - получится то же самое, только с наследованием статических членов.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289490
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПроблемы начнутся, когда захочется сделать статическое поле. Доступ к нему придётся синхронизировать.
как это? почему?
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289532
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАлексей КПроблемы начнутся, когда захочется сделать статическое поле. Доступ к нему придётся синхронизировать.
как это? почему?Потому что публичные статические члены принято делать потокобезопасными.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289568
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

то есть мне надо это как то по другому писать?

Код: c#
1.
        static readonly bool notLinkedNodeslabeledAsReadyForDelete = true; // true - отметить ноды с разорванными связями как готовые для удаления в логистическом графе
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289684
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кbazile
Для хелперов static классы прекрасно подходят и МСУ про это сказал.При этом утверждая, что static - зло.[/quot]
Смотря для чего зло. Для хелперов и расширений статика удобна, для всего остального - зло.

Алексей КЭто не важно. Важно что там static-методы.
Я говорил, вообще-то, о невозможности наследования статического класса, а не обычного класса со статическими методами. Да и декорирование обычных классов статикой (а-ля синглтон) не сулит ничего хорошего, окромя пули в голове.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289711
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

интересно как МССКЛ запускает многопоточно СЛР процедуры
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289733
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ, интересно как МССКЛ запускает многопоточно СЛР процедуры
Обыкновенно. Берет и запускает. А что там в них происходит, SQL'ю нет никакого дела.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289895
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА что там в них происходит,
ну это в первом приближении не волнует
http://msdn.microsoft.com/en-us/library/ms403277.aspx например
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289938
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАлексей К,

то есть мне надо это как то по другому писать?

Код: c#
1.
        static readonly bool notLinkedNodeslabeledAsReadyForDelete = true; // true - отметить ноды с разорванными связями как готовые для удаления в логистическом графе

readonly причём тут?
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38289943
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДа и декорирование обычных классов статикой (а-ля синглтон) не сулит ничего хорошего, окромя пули в голове.Ну не знаю. Мне синглетоны нравятся.
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38290032
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУА что там в них происходит,
ну это в первом приближении не волнует
http://msdn.microsoft.com/en-us/library/ms403277.aspx например
Речь про статические методы (CRL процедуры), а не про запрещенные типы, атрибуты и сборки.

Алексей КМСУДа и декорирование обычных классов статикой (а-ля синглтон) не сулит ничего хорошего, окромя пули в голове.Ну не знаю. Мне синглетоны нравятся.
Как может нравиться это убожество?
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38290090
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КViPRosАлексей К,

то есть мне надо это как то по другому писать?

Код: c#
1.
        static readonly bool notLinkedNodeslabeledAsReadyForDelete = true; // true - отметить ноды с разорванными связями как готовые для удаления в логистическом графе

readonly причём тут?
откуда я знаю
...
Рейтинг: 0 / 0
Конструктор в static классе
    #38290162
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosоткуда я знаю
А почему просто константу не объявить?
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Конструктор в static классе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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