• Как отражается изменения словаря на присваиваемые?

    ayazer
    @ayazer
    Sr. Software Engineer
    https://docs.microsoft.com/en-us/dotnet/csharp/lan...

    как я понимаю если я буду менять значения в Dictionary1 то они будут меняться и в 2 и 3 словарях?

    да, так как все будут ссылатся на один и тот-же объект

    но если я буду менять значения в 2 и 3 словарях они не будут затрагивать друг друга?

    будут, т.к. они будут ссылатся на один и тот-же объект

    то есть меняя значения в 2 словаре это никак не отразится на 3 словарь, я правильно понимаю?

    нет

    А то просто во недавно столкнулся с такой проблемой что присвоил один словарь другому Dictionary2 = Dictionary1 потом 1й очистил и 2й автоматом тоже оказался очищенным


    это один и тот-же словарь. просто на него ссылаются две переменные.

    те
    private Dictionary<string, ClassTest> Dictionary1  // переменная Dictionary1 типа Dictionary<> 
        = new Dictionary<string, ClassTest>(); //которая ссылается на объект Dictionary [id=1]
    private Dictionary<string, ClassTest> Dictionary2 // переменная Dictionary2 типа Dictionary<> 
        = new Dictionary<string, ClassTest>(); //которая ссылается на объект Dictionary [id=2]
    private Dictionary<string, ClassTest> Dictionary3 // переменная Dictionary3 типа Dictionary<> 
        = new Dictionary<string, ClassTest>(); //которая ссылается на объект Dictionary [id=3]
    
    //Dictionary1 -заполняем данными
    Dictionary2 = Dictionary1; //переменная Dictionary2 теперь ссылается туда-же, куда и переменная Dictionary1, 
    // т.е на Dictionary [id=1]
    
    Dictionary3 = Dictionary1; //переменная Dictionary3 теперь ссылается туда-же, куда и переменная Dictionary1, 
    // т.е на Dictionary [id=1]
    
    // a объекты Dictionary [id=2] и Dictionary [id=3] будут собраны сборщиком мусора, т.к. они больше не нужны


    UPD:

    а как мне сделать 2 словаря по типу 1го, то есть у меня есть 1й словарь шаблон, я хочу чтобы 2й и 3й словари изначально так же и выглядели (имели все те же данные), но далее данные в них менялись независимо друг от друга?


    ну например как-то так:
    var dict1 = new Dictionary<int, int>()
    {
        [1] = 2,
    };
    
    var dict2 = new Dictionary<int, int>(dict1);
    
    dict1.Add(2, 3);
    dict2.Add(2, 1);
    
    
    var log = new Action<Dictionary<int,int>>((dict) =>
    {
        Console.WriteLine(string.Join(", ", dict.Select(c => $"{c.Key}={c.Value}")));
    });
    
    log(dict1);  //1=2, 2=3
    log(dict2);  //1=2, 2=1
    Ответ написан
  • Что такого хорошего в иммутабельности?

    xez
    @xez
    TL Junior Roo
    Представьте бухгалтерскую книгу, ту что на бумаге - вот вам пример иммутабельности.
    Главные плюсы - консистентность данных и атомарность операций.
    Ответ написан
    1 комментарий
  • Фриланс: какие специальности не оккупировали "индусы"?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    С таким уровнем я бы рекомендовал набраться опыта в офисе или где-то в работе по найму.
    Лезть во фриланс с нуля - это крест на своей карьере.

    Нормальные опытные люди вообще не конкурируют с индусами.
    Ответ написан
    Комментировать
  • Что значит данная запись на C#?

    @Voland69
    Такая Headers?.UserAgent запись - это Null Propagation - если Headers == null выражение вернет null (без ? было бы NRE)
    value ?? string.Empty это сравнение значения с null - если value != null, то вернет value, в противном случае вернет string.Empty
    Ответ написан
    Комментировать
  • Что означает данное выражение?

    Aetae
    @Aetae
    Тлен
    0 и более подряд символов л, <пробел> или ".

    А вообще: изучите регэкспы, на таком примитивном уровне - это совсем не сложно.
    Штука незаменимая для работы с любым текстом.
    Ответ написан
    Комментировать
  • Можно создать перменные в цикле?

    Nipheris
    @Nipheris Куратор тега C#
    Что вы понимаете под "создавать переменные"? Если вы имеете в виду объявление переменных, то это не просто нормальное явление, а рекомендация - если переменная нужна вам только в цикле (а за пределами цикла её видно не будет, т.к. у цикла будет свой scope), то намного лучше, если вы в цикле её и объявите.

    Правило очень простое - держите объявление переменных поближе к месту их использования, а если точнее - то держите переменные в самом вложенном скоупе, насколько это возможно согласно местам их использования.
    Ответ написан
    3 комментария
  • На сколько хорош данный roadmap для PostgreSQL DBA?

    Melkij
    @Melkij
    PostgreSQL DBA
    Его написал мой коллега https://github.com/kamranahmedse/roadmap.sh/pull/196 Алексей Лесовский после сбора фидбека со всей нашей команды DBA. Так что вряд ли раскритикую год спустя.

    "конца" у roadmap нет. troubleshooting и optimization бесконечны. А уж тем более необъятна hackers тематика.

    Если заходить со стороны разработки - создайте маленькую базу неважно какой тематики (да хоть q&a сервиса), заполните сгенерированными данными гигабайт на 10-100 и заставьте это шевелиться за вменяемое время под синтетической нагрузкой (хоть pgbench). А потом начните менять схему данных, не останавливая нагрузку. А потом восстановить базу на состояние до миграции из бекапа.
    Ответ написан
    Комментировать
  • Что проще — написать стили с нуля или пользовать Bootastrap?

    Pavel-ww
    @Pavel-ww
    Тут вопрос требований к проекту. Если в ТЗ четкое указание использовать Bootstrap, то куда вы от этого денетесь. Придется изучать. Главное понять его принцип, тогда ничего муторного не будет. Есть классы с интуитивно понятными именами, добавляя которые в html код вы используете уже написанные заготовки css из bootstrap.

    Если требование к проекту не регламентируют обязательное использование Bootstrap, то тут конечно проще и быстрее (хотя это субъективно) написать свой код. У своего кода неоспоримое преимущество в том, что его будет значительно меньше и можно использовать легкие и быстрые технологии , такие как css grid. Все это позитивно скажется на проекте в плане чистоты кода и скорости загрузки, так как не надо тянуть весь фреймворк если вам требуется всего 10% его возможностей. Или использовать длиннющий стек классов в html тегах.

    То есть, вопрос ставить так - "что проще?" - не корректно. Проще то что вы лучше знаете. Есть люди которые слабо знают css и зазубрили классы bootstrap, есть те, которые отлично знают css но слабо ориентируются в классах Bootstrap. И нивелируют все эти метания требования ТЗ. ))

    Удобной практикой является использование полностью своего CSS в связке с JS компонентами Bootstrap. Компоненты - это то чем стоит пользоваться. Зачем писать свой JS если всё уже написано или если нет навыков JS, тем более можно подключить только то, что нужно.
    Ответ написан
    Комментировать
  • На каком яп можно подписать андроид приложение через веб интерфейс?

    @rPman
    на любом

    сборкой android проекта занимаются утилиты android sdk, нет нужды их переписывать на другой язык, плюс это неподъемно сложная задача.

    поэтому пишешь свои скрипты по редактированию исходных файлов проекта и запуску сборки по запросу с веб сервера
    Ответ написан
    Комментировать
  • Браузер отправляет данные на сервер MTS?

    hint000
    @hint000
    у админа три руки
    Так MTS - ваш провайдер?
    Сотовые операторы больше других провайдеров любят перехватывать трафик с целью добавления рекламы.
    Ответ написан
    2 комментария
  • Что это означает?

    freeExec
    @freeExec
    Участник OpenStreetMap
    public string Name
    {
       get
       {
           return this.name;
       }
    }
    Ответ написан
    Комментировать
  • В чем смысл DMARC?

    paran0id
    @paran0id
    Умный, но ленивый
    Комментировать
  • C# Math правильно ли я делаю?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Да вроде все правильно. Скорее всего опечатка в задании где-то. Так бывает. Или где-то может быть сказано, что углы должны быть в градусах а не радианах. Тогда выражение под синусом/косиносом надо домножать на 180/pi.
    Ответ написан
    1 комментарий
  • Как узнать версию windows, если в заголовках и системе они разные?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Windows NT 6.1 - это внутренняя версионность в MS
    NT это New Technology

    NT 6.1 - Windows 7
    NT 6.2 - Windows 8

    https://en.wikipedia.org/wiki/List_of_Microsoft_Wi...

    Но браузер может и врать.
    Ответ написан
    Комментировать
  • Желание не вылазить из одного языка - это лень?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Язык - инструмент, нужный для решения задач. Вам некомфортно с C# или go не потому, что лень, а потому, что Ваши задачи гораздо лучше решаются JavaScript. Судя по тому, что освоить синтаксис других языков Вы смогли, не думаю, что при появлении интересной задачи, которая не решается на JavaScript, Вы спасуете, скорее всего быстро разберетесь. А изучать просто ради изучения неэффективно. Так что вряд ли это может негативно повлиять на будущее.
    Ответ написан
    Комментировать
  • Как правильно лицензировать ядра на сервере Windows Server?

    Francyz
    @Francyz
    Photographer & SysAdmin
    Никуда, лицензируется полностью все. Просто когда придет проверка должны быть документы, что у вас лицензии покрывают все ядра сервера. У ключей нет разницы в ядрах, он не может активировать только половину ядра.
    Ответ написан
    Комментировать
  • Индексация идёт уже 2 недели, в чем у меня ошибка?

    @rPman
    значит узкое место почти наверняка диск.

    Пальцем в небо, файловая система на которой таблеспейсы лежат какая? случайно не cow (btrfs/zfs/xfs)? с ними отвратительно работают базы данных, так как частые записи в файл генерируют сильную фрагментацию. В этом случае перед тяжелой обработкой хотя бы дефрагментируй файлы базы и отключи cow фичу на таблеспейсах

    неплохим тюнингом может оказаться (на выбор):
    * разместить базу в ram диске (буквально, залить на сервер в облаке, обработать данные, залить назад, работая напрямую с таблеспейсами, но версия софта должна совпадать до последней цифры)
    * разместить базу целиком на ssd (даже если это будет потребительский и дешевый)
    * добавить в систему ssd кеш для hdd с помощью например bcache (включенный на запись), правда для линейной обработки базы это может дать мало пользы, но вообще это неплохой способ на порядок поднять производительность за дешево (в одном месте я использовал фичу virtualbox со снапшотами в файл, есть и у kvm, когда последующие записи шли не на исходный образ а на другой диск, и он ssd)
    * разместить таблеспейс для индексов (а может и каждую таблицу отдельно) на другом физическом устройстве (hdd, ssd или даже в ram), требования к размеру тут обычно низкие, ключевое слово - исключить последовательные чтения/записи на одно устройство.
    * разместить журнал (например ext4) на ssd диск (хватит пары гигабайт) или по хардкору даже отключить его (очень опасно, можно получить кашу из данных при сбое питания, но как временное решение пока идет долгая операция, при наличии всех бакапов, оправдано) - наименьшая оптимизация, но при частых мелких записях это заметно
    Ответ написан
  • Не правильно выводит значение программа как исправить?

    Adler_lug
    @Adler_lug
    int a, b, dob =0;
    ...
    dob *= i;


    Умножать на 0 можете хоть до посинения, все равно будет 0. Математика младшей школы...
    Ответ написан
    Комментировать
  • Как выбрать пользователю между ext4, btrfs и zfs?

    Adamos
    @Adamos
    Если, играясь с незнакомыми ФС, вы угробите все это хранилище, вам будет больно?
    Тогда не используйте системы, работа которых вам не знакома, а преимущества не очевидны.
    Если же нет - конечно, стоит попробовать. Для будущего мы встаем ото сна...
    Ответ написан
    2 комментария
  • Рекурсия, зачем она нужна, и используете ли вы её?

    New_Horizons
    @New_Horizons
    Бред:
    Самый простой пример: построение дерева элементов с неопределённым уровнем вложенности.

    Неужели если я научусь ей пользоваться и приду в хорошую контору там все (особенно джуны) будут понимать мой код?

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