Search
Write a publication
Pull to refresh
4
0

Ещё один отвечающий по десктопному дотнету

Send message

Но в вашем тексте написано безусловно: «value type (...) хранятся в быстром stack», а не «локальные переменные значимых типов хранятся на стеке, за исключением (тут перечисление)».


То, что поля хранятся там же, где и весь объект, вовсе не очевидно: например, если объект значимого, а поле ссылочного типа, то они хранятся не вместе.

value type (пример int, struct, ссылки на инстансы reference type) хранятся в быстром stack

Это неверно. Простейший контрпример:


class RefType
{
    int Value;
}

Value будет храниться вместе со всем объектом, в куче.
Затем, замыкания, async-функции, генераторы, все они могут оправить value typed-значение в кучу.


Затем, само наличие стека — это подробность реализации текущей Microsoft CLR, она не гарантирована по стандарту.


Немного по теме: ответ на SO и статья Эрика Липперта, обсуждаемая в этом ответе.


Кстати, и reference types не прибиты гвоздями к куче. Вот тут их от кучи отвязывают.

Не обязательно в многопоточном окружении. Метод Add может выбросить исключение. Или обнулить поле, куда записывается ссылка на объект. Или ещё что-нибудь.

Ну всё же идиоматически ваш код обычно записывается так:


private DateTime m_now;
public DateTime Now
{
    get => m_now;
    set => Set(ref m_now, value);
}

что вовсе не такой уж крокодил. Если ключевое слово field взлетит, то будет на строку меньше. А с пришествием original/replace будет просто атрибут, кто там хвалил Питон?

Ну это да, можно в нарушение семантики сделать что угодно. Можно сделать, чтобы Add ничего не добавляло, или добавляло не значение своего аргумента, а что-то другое. C# не может защитить программиста, который упорно вредит сам себе. Но по крайней мере C# старается, чтобы код, делающий странные вещи, и выглядел странно.
От коллекции программист на .NET ожидает, что она будет перебираться. А если хочется странного, так можно в GetEnumerator и исключение бросить.

Вероятно, чтобы синтаксис инициализации коллекции не использовали не по назначению. Если класс реализует IEnumerable, то он, вероятно, семантически является коллекцией. А формально, конечно, достаточно и Add с нужной сигнатурой. Принцип наименьшего удивления — один из центральных идеологических принципов C#.

В синтаксисе с инициализацией коллекцией, если уж есть Add с IEnumerable, то по идее дополнительные скобки не обязательны, т. к. это частный случай инициализации одним элементом. (Проверка.)

Проблема в том, что бюрократы Википедии (как и администрация ru.SO) крайне обидчивы, и всякую критику, даже конструктивную, считают оскорблением. Кроме того, деятельность на некоторых сайтах (любая, кроме деструктивной) ими не одобрялась, то есть, приводила к бану.


Кроме того, я вот лично не понимаю позицию «вы или во всём соглашаетесь с руководством, или враг», которую вы подаёте как «либо помогаете, либо мешаете». Вы протянули какую-то очень странную логическую цепочку от приколов на Лурке про Википедию через «ругает матом маму участника» к «прямо вредит основной цели Википедии и наносит ей ущерб», в стиле «мама, он меня сукой назвал».

Насколько мне помнится, причина для удаления race из исходников — вовсе не происки SJW. Майкрософт хотела осложнить хакерам поиск мест в коде с потенциальными проблемами (и в конечном итоге уязвимостями), и это была часть принятых мер. Да, это объяснение не объясняет фильтр на rape и ass.

Вероятно, было слишком интеллектуально.

Это была точка бифуркации, да. С этого момента всё пошло хуже и хуже.

В бэкенд-приложении можно по идее установить CultureInfo.DefaultThreadCurrentCulture.

Вы опять забыли скрестить пальцы? Отсутствие модераторов прекрасно видно по дате последнего посещения.


Некоторые модераторы после апрельского кризиса даже спрашивали у меня лично, что же случилось на сайте, и удивлялись результатам. Они были не в курсе драмы потому, конечно, что всё время сидели на сайте, о да.

Конечно, администрация вольна делать что угодно, врать, нарушать собственные правила, банить любую критику, пускаться в любой неадекват.


Но и мы не продались за репу, и мы вольны рассказать всему миру, что администрация врёт, нарушает собственные правила и пускается в неадекват. Мы вольны перестать создавать контент для этой администрации, и отговаривать других.


Если администрация не понимает ценность своих авторов, и считает, что может делать что хочет без противодействия, пусть провалится в ад.

С удовольствием обсужу эти вопросы на платформе, где можно говорить на равных. В чате ru.SO, простите, нет: я хорошо усвоил, что попытки отстоять своё мнение заканчиваются баном (или баном как в чате, так и на основном сайте).


Но эти наши склоки, думаю, читателям Хабра неинтересны.

Не любая. Обсуждали ж проблему несколько раз, даже за последние пару месяцев — и никто за это в бан не улетел.

О да, а я в бан улетел сам, видимо. Не, подождите, это не из-за критики, это из-за разжигания, точно, не могут же модераторы обманывать? </сарказм>

Я вижу на ответе, в котором прямо упомянуто право компании наложить вето на любое решение сообщества 10 плюсов и один минус. Причем этот минус — мой.

Теперь уже два минуса. В историческом контексте, тогда ещё была вера в демократию, и заявление КМ о том, что у него остаётся на крайний случай право вето, воспринималось всеми как реально исключительный механизм. Никто и подумать не мог, что правом вето КМ будет пользоваться вето практически всегда и во вред сообществу. К настоящему моменту все научены, и никто больше не выдвигает предложений. (Например, были спущены плохо переведённые с английского «ценности сообщества», которые подаются как консенсус участников, а не спущенные сверху лозунги — это отбивает новичкам желание поменять их.)


Сейчас понятно, что это была первая стадия отъёма власти у сообщества. Неудивительно, что через полтора месяца после этого наступил кризис.

«Сообщество управляет контентом». А бинайс «спущен сверху», его демократически отменить нельзя.

Контрпример по поводу спущенного сверху бинайса (для английского сайта) я приводил, ссылки на обсуждение, критику и изменение были вам даны. То, что Николас не захотел обсуждения на нашем подсайте — его личная трусость. Но высказывание о «спущенном сверху» бинайсе — искажение фактов: на английском SO такого не было, а вот то, что на русском было, и есть часть претензии к администрации.

Вы просто оказывались с нужной стороны «демократии» на год дольше, чем я. Очень легко принять за демократию схему «мы выслушаем ваши предложения, и решим за вас», когда КМ прислушивается лично к вам.

Вы, должно быть, забыли, как на сайте было вначале. Вот по ссылке первый попавшийся пример нормального демократического процесса. Или вот, из совсем недавнего.

По поводу демократии — поищите на мете т.н. регламент по инициативам, и подумайте, зачем это было нужно, если и так была демократия. Ну или посмотрите, как эту "демократию" перекашивало в зависимости от того, кто вносил предложения. Например, сравните усилия на утверждение первой и второй редакции причины закрытия домашки. Там отлично видно, насколько односторонне "демократия" работала. Просто те, чьи предложения тогда заворачивались, спокойно это принимали и не бастовали.

Это и есть «демократия»: ситуация, при которой предложения принимаются активной частью коллектива, а не единолично одним упёртым представителем администрации. Да, от аргументов и способа их подачи зависит результат, и ничего плохого в этом нет: если решение неправильно, через определённое время выйдет обоснованное контрпредложение, которое убедит сообщество, и получит свои голоса. Или не убедит, если проблема лишь мерещится одному человеку.


Сообщество имеет право ошибаться, и исправляться, принимая новые решения, и это нормально, так работает демократическая организация власти. Никто из нас не делегировал администрации право избавлять нас от ошибок путём отнятия у нас возможности что-либо решать самим.


И да, ситуация, когда у предложения много голосов против, намного лучше воспринимается сообществом, чем ситуация, когда у предложения много голосов за, а против лишь один перевешивающий всё голос представителя властей.

Information

Rating
8,621-st
Location
München, Bayern, Германия
Registered
Activity