• Как уничтожаются объекты значимых типов?

    Nipheris
    @Nipheris Куратор тега C#
    1. В теории реализация не обязана использовать стек для хранения локальных объектов value-типов (см. https://blogs.msdn.microsoft.com/ericlippert/2009/... ).
    2. Тем не менее, в текущих реализациях используется именно стек, поэтому всё как и в остальных языках: https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D... .
    3. Помните, что значения value-типов иногда (не всегда) хранятся на стеке. Все значения value-типов, являющиеся частью объекта ссылочного типа (например, int-поле в классе или элементы массива double) рождаются и умирают вместе с этим объектом.

    Итого:
    • время жизни локальных объектов value-типов связывается с фреймом стека;
    • время жизни объектов value-типов, находящихся в составе объектов reference-типов, связывается с временем жизни объемлющего объекта;

    Более экзотические ситуации рассматривать не будем. И вообще, как говорит Липперт (см. ссылку), лучше не думать в терминах стека, т.к. это деталь реализации. Лучше говорить о времени жизни относительно вызываемых функций и относительно других объектов.
    Ответ написан
    1 комментарий
  • Error CS0103: Имя “$exception” не существует в текущем контексте?

    GavriKos
    @GavriKos
    У вас массив меньше, чем Counter. Где то в коде вы Counter увеличили, а размер массива остался старым.
    Самый быстрый выход - использовать List
    Ответ написан
    Комментировать
  • Почему в var a = new int[1] {5} нет упаковки?

    @kttotto
    пофиг на чем писать
    Я, думаю, Вы что-то не так поняли. Массив, это ссылочный тип и в случае
    var a = new int[1] {5}
    значение переменной a будет лежать в стеке, но значением будет ссылка на место в куче, указывающая на массив интов. Тоже самое касается и
    a = new object[1] {5}

    Упаковка будет происходить со значениями, которые лежат в стеке, а потом копируются в кучу. Например так
    int a = 5;
    var b = (object)a;

    В первой строке мы положили в стек пятерку, а во второй эту пятерку мы помещаем в кучу. Переменная b будет лежать в стеке, значение которой будет указывать на адрес в куче, где лежит тип object, со значением value равным 5. И то, что у объекта поле будет интовое, не означает, что оно будет в стеке.
    Ответ написан
    7 комментариев
  • Почему HttpClient.GetAsync некорректно использует ссылку с символом "#"?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    После символа # указывается локальный фрагмент (или якорь) страницы - элемент внутри страницы, который использует браузер для навигации по странице. Также используется для локальных (клиентских) настроек страницы.
    В вашем случае, после # указан тип сортировки p1_name_asc - сортировать таблицу по имени по увеличению. Например, чтобы сортировать по уменьшению, можно поставить тип p1_name_desc.
    Проблема в том, что сортировка происходит в браузере, а не на сервере (сервер вообще не увидит эту часть адреса).
    Если нужно получить список именно так, как указано в ссылке, то вы тоже должны сортировать результат после получения списка.
    Ответ написан
    Комментировать
  • Где выгоднее жить программисту, в Москве или Новосибирске?

    trikono
    @trikono
    Novice publisher
    Академ - действительно райское местечко! Если есть вакансия, переезжайте и не думайте. Насчет холода - правда (но длинный пуховик и будет счастье), а про ветер - враньё. Даже, когда на обском сдувает, тут тишь, да благодать. Но это про верхнюю зону, а на "Щ" бывает ветерок. Вообщем, смотря где поселитесь...
    Пожить в Москве тоже был опыт. При большей разнице в зп, чем в аренде квартиры, будьте готовы ежедневно на дорогу дом-работа-дом тратить 1.5-2 часа минимум. А если жить в двух минутах от метро, то разница в аренде исчезнет, а то и съест большую часть зп.
    Ответ написан
    3 комментария
  • Где выгоднее жить программисту, в Москве или Новосибирске?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Москва - это странный выбор. Лучше жить в среднем по размеру городе, где есть инфраструктура. но цены на услуги ниже, чем в Москве, Питере, Новосибирске и т.д.
    Я живу сейчас в Тамбове - считаю оптимальным выбором. Это достаточно рядом с Москвой (4 часа на экспрессе). Достаточно далеко от Москвы, экология в норме, Тамбов и Белгород самые чистые города европейской части России. Из тех, в которых есть вся необходимая инфраструктура. Цены на жилье радуют. Снимаю очень большую и хорошую 2-шку за 12K + 3k коммуналка. Модно найти однушку за 8k.
    Я долго думал куда съехать (жил в Харькове, потом в Москве) начертил себе табличку, провел тендер и выбрал победителя - Тамбов. Многие наверно удивятся, но я за 3 года не разу не пожалел. Город - отличное место для фриланса. Конечно же работать в Тамбове программистом не где. Есть конечно студии, но там ценники в месяц на уровне 1 закупки в супермаркете. Только фриланс.
    Ответ написан
    6 комментариев
  • В чём можно подготовить документацию перед разработкой проекта?

    @Kirill-Gorelov
    С ума с IT
    WIKI ??? Ставишь движок на сервер к себе и наполняешь. Организовываешь структуру как хочешь. Или ставишь любой удобный движок и там все разворачиваешь.
    Но вообще вики заточена под ведение документации.
    Ответ написан
    5 комментариев
  • Как вызвать метод родителя родителя?

    @stepagrus Автор вопроса
    Это невозможно сделать законным способом.

    https://docs.microsoft.com/ru-ru/dotnet/csharp/lan...

    Реализацию виртуального члена можно изменить путем переопределения члена в производном классе.


    Класс B хранит реализацию базового класса A.
    Класс C хранит реализацию своего базового класса B, а вот к реализации A мы не имеем доступа языковыми средствами C#.

    Виртуальный метод класса A всё же можно вызвать из класса C, прибегнув к грязному хаку IL кода, но это не наши методы.
    Ответ написан
    2 комментария
  • Лучшие книги по Java, не переведенные на русский?

    aRegius
    @aRegius
    Python Enthusiast
    Привет!

    Тоже исключительно на Amazon периодически слежу за теми или иными новинками по интересующей меня тематике )

    Если отсортировать по "звездам" (4 и выше) в данном случае литературу по Java, получим следующий результат:
    Books 4 Stars & Up Java
    Так вот, по моему опыту, рейтинг соответствует реалиям:
    4,5-5 звезд - это практически всегда удачное приобретение. Т.е., в данном случае, это именно та литература, которая попадает под ваш критерий "Лучшие книги по Java" с очень высокой вероятностью.
    Меньше 4-х - практически всегда "Это фиаско, братан".
    4 - нужно смотреть, 50/50, зависит от личных текущих "хотелок", процентного отношения отзывов (с 1 по 5) на конкретно данную книгу, года издания и т.п.

    P.S. Нюансы не оговариваю, все люди взрослые и понимают, что 50 отзывов/5 звезд это не то же самое, что 1 отзыв/5 звезд; что отрицательные отзывы типа "Ужасное качество бумаги" это не то же самое, что отрицательные отзывы типа "Чувак, ты в своем уме, у тебя половина приведенного кода содержит ошибки!" и т.п.
    Ответ написан
    Комментировать
  • [C#] Как работать с MeasureString в цикле?

    @cicatrix
    было бы большой ошибкой думать
    Ещё хинт: в простых случаях, можно MeasureString не вызывать а воспользоваться свойством Height самого шрифта.
    Из примера выше вот это:
    var iOneLineHeight = g.MeasureString("Z", fnt, wrapWidth, sfFmt).Height;

    эквивалентно этому:
    var iOneLineHeight = fnt.Height;

    Вопрос ещё такой - вы где всё это отрисовываете? WPF, Winforms? Системный оконный менеджер для этих целей сам может всё рассчитать. Float Container с ограничением по длине, а внутри набор Label с Autosize, в принципе, избавят вас от этих мучений.

    Имейте так же в виду, что MeasureString не гарантирует вам точных замеров ширины текста. Чтобы всё рассчитать точно, надо пользоваться MeasureCharacterRanges
    Ответ написан
    1 комментарий
  • C# Обработка события?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    попробуете изменить тут
    str1 += tbArray[i, j].Text

    ps строка 78 исходника.. а вообще сам подход.. по меньшей мере странен.. TexBox это отображаемый контрол, но 100 текстбоксов - это откровенная несуразица... такой UI не жизнеспособен.. ну а если не нужны визуальные контролы - используйте строки.. или StrinBuilder, в зависимости от задачи

    pps у всех потомков obj, есть метод ToString() .. но он возвращает тип объекта.. далеко не все потомки obj имеют поле Text, по этому, разработчики, вполне логично, не переопреоделяют данный метод, без явной необходимости

    ppps наиболее очевидные поводы, переопределять ToString() у типов вроде Int32, Int64, Float, Double, в общем у value-типов.. но TextBox (повторюсь) визуальный контрол, если вы не планируете насиловать внимание пользователя, просмотром 100 (или более?) текстов.. то, тем не менеее, вы будете насиловать ресурсы компа )).. и ЦПУ, и ГПУ, на их отображение, или по меньшей мере, готовность к отображению... я думаю, вам стоит пересмотреть архитектуру своего приложения

    pppps если вы используете заготовки чужего кода, обратите внимание, что TextBox.Text это: - во первых реальное хранилище текста, во вторых это банальный string... надеюсь эта подсказка поможет

    ppppps дружите с MSDN.. благо кнопка F1, в абсолютно бесплатной студии VS 2017 Community очень в этом помогает
    Ответ написан
    2 комментария
  • Как связать ВЕБ-разработку и программирование ПЛИС/МК?

    @LCLR
    Изучайте интернет вещей. В качестве стартовых проектов можно сделать что-нибудь на STM32 и ESP8266, а там уже сориентируетесь. ПЛИС обычно применяют для многопоточной обработки данных.

    На счет актуальности такого симбиоза навыков сказать не могу. Сам окончил радиотехнический ВУЗ, устроился не по специальности, какое-то время занимался разработкой на МК/ПЛИС, одновременно пытаясь найти профильную работу с лучшей оплатой. В итоге оставил электронику в качестве хобби и начал осваивать веб-разработку (фронтенд). Для профессиональной деятельности у последней есть важные преимущества: возможно обучение без финансовых затрат (теперь не нужно покупать радиоэлементы, измерительное оборудование, инструменты, расходные материалы); более узкий спектр работ (чтобы сделать радиоэлектронное устройство, нужны навыки механической и химической обработки, пайки и монтажа, схемотехники, трассировки, программирования); возможность удаленной работы (можно, находясь в каких-нибудь Нижних Черемушках, делать работу для заказчика из Сингапура и получать достойную оплату). Из минусов пока вижу большую конкуренцию на рынке труда и необходимость разбираться в колоссальном объеме разнородной информации. Для меня плюсы гораздо весомее, поэтому сомнений в сделанном выборе не возникает.
    Ответ написан
    Комментировать
  • StreamReader, как изменить позицию?

    @cicatrix
    было бы большой ошибкой думать
    Сетевые потоки операцию SEEK не поддерживают. Читай всё подряд в массив, а уже там выбирай нужное.
    Такое может прокатить только с File/MemoryStream

    Прежде чем устанавливать позицию, проверяй свойство Stream.CanSeek
    Ответ написан
    Комментировать
  • Слышали ли вы об авторизации через email?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Такой способ исходит из предположения, что «все пользуются эл. почтой».
    Так же как одноразовый пароль на смс – из того, что «все пользуются мобилкой».
    Или «у всех есть аккаунт в соц. сети».

    Эти гипотезы верны в большинстве случаев, но не в 100%. Если хотите удобно охватить всех, лучше предложить выбор способа авторизации.
    Ответ написан
    Комментировать
  • Слышали ли вы об авторизации через email?

    kvlt
    @kvlt
    Fullstack developer
    Всем будет просто лень идти в почту. Идеальный вариант авторизации - вход одним кликом через соцсеть. Чем меньше кликов нужно совершить для действия, тем лучше.
    Ответ написан
    Комментировать
  • Слышали ли вы об авторизации через email?

    DeepCool
    @DeepCool
    Программист ищущий свое
    Ну мне лично это не очень удобно , например с мобильнымы сетями.
    Мне нужно не у вас на сайте войти в аккаунт, а войти в почту, перейти по ссылке, а в это время я и могу передумать о своих планах относительно вашего ресурса.
    Ответ написан
    Комментировать
  • Дизайнер интерфейсов с нуля. С чего начать и как двигаться?

    Chipr
    @Chipr
    UX/UI designer
    UX/UI – не sketch или figma. Это совокупность знаний из разных отраслей — технической, творческой + психология. Это большой объем знаний и умений.
    Учите html/css/js (базовые понятия), читайте все что возможно по типографике (это основной пункт для дизайнеров), колористике, композиции, читайте исследования по UX (их масса, есть большие труды, но в основном англоязычные, начните с Купера, как вариант). И в процессе всего этого практика, практика, практика. Потому что, к сожалению, без нее никуда. Вы будете круты настолько — сколько кейсов запилите. Успехов!
    Ответ написан
    Комментировать
  • Дизайнер интерфейсов с нуля. С чего начать и как двигаться?

    @Za0r
    pop()
    Здравствуйте.

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

    Люди которые пытаются сменить деятельность после 30,а чаще бывает позже,терпят фиаско из-за низкого заработка/конкуренции среди более молодых и талантливых людей/из-за природных не предрасположенностей к этому ввиду деятельности/и самое банальное,это возраст на который смотрят HR.

    Теперь о насущном. Как вы себе представляете работу дизайнером,если до этого им не занимались? Какой вы себе путь развития представляете? Какие планы для получения первой работы в новой для вас сфере? Задайте себе эти вопросы, ищите и Google'ти ,чем больше вы сейчас освоите информации перед тем как начать,тем четче будет виден ваш путь развития для вас.

    О работе. Часто ли видели чтобы без опыта работы брали людей старше 30-ти на новую работу связанную с технической стороной вопроса? Видели чтобы приходил человек на завод, и говорил что возьмите меня инженером,вышки у меня нет,но зато я несколько книг прочитал и готов работать за еду? Лично я нет. Так что вероятнее всего вы будите заниматься фрилансом. Тут довольно большая конкуренция,даже зарубежом. Но всё ровно придётся учить английский,если он есть,уже хорошо. Но и развития на фрилансе,ну такое себе удовольствия. Туда идут уже специалистом.

    Об обучение. Гуглите топовые книги для UX. Пытайтесь освоить некоторые технические аспекты вопроса. Делайте портфолио. Ибо за дизайнера говорит его портфолио,и не надейтесь получить хороший заработок после прочтения нескольких книг. Так что практика и ещё раз практика.

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

    Удачи.
    Ответ написан
    Комментировать
  • Стоит ли тщательно исправлять все ошибки(предупреждения) в Android Lint?

    @YuryBorodkin
    Android dev
    Максима: на линтер, встроенный в IDEA нужно обращаться внимание всегда. Он реально советует хорошие вещи.
    но, если твердо знаешь что делаешь и при этом сроки горят, можно проигнорить (увы, жизнь не совершенна).
    При работе в команде лучше деражть список предупреждений чистым, конечно если он бесогонит - сделать supress чего-то, но зато всегда будешь видеть чей-то говнокод при сборке.
    Ответ написан
    1 комментарий