Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 542 41 93
C# Тред #37 Аноним 02/08/22 Втр 23:22:04 2423030 1
image.png 557Кб, 868x946
868x946
image.png 90Кб, 500x500
500x500
Тред лучшего языка на планете.

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://ru.stackoverflow.com/a/416585/422180
https://metanit.com
https://professorweb.ru

2. С# для веб
https://docs.microsoft.com/ru-ru/aspnet/core

3. C# для десктопа
— WPF ( https://docs.microsoft.com/ru-ru/dotnet/desktop/wpf )
— WinForms ( https://docs.microsoft.com/ru-ru/dotnet/desktop )

4. С# для игр
— Unity-тред в /gd/, а так же учебники: https://ru.stackoverflow.com/a/609901/422180

5. С# для мобильной разработки
https://docs.microsoft.com/ru-ru/dotnet/maui

Шапка: https://pastebin.com/HT7Hi6FD
Прошлый тред: >>2399284 (OP)
Аноним 02/08/22 Втр 23:22:58 2423031 2
6. Какую IDE выбрать?
Для Windows — Visual Studio ( https://visualstudio.microsoft.com/ru/downloads ). Также есть версия для macOS.
Кроссплатформенный IDE Rider ( https://www.jetbrains.com/rider ).
Если в C# хочется, но пк уж слишком хуёвый: https://docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio-code

7. Что нужно знать, чтобы взяли работать?
— TPL, Linq, DI, интеграционные тесты. Преимущество перед такими же вкатунами даст парочка интересных пет-проектов где вы делаете всё максимально правильно и точно следуя архитектуре.
— [Архитектура] — DDD, микросервисная архитектура. Так же необходимо ознакомиться с паттернами проектирования. Обязательны к изучению: MVVM, MVC.
Базы данных — PostgreSQL + Mongo. Из ORM: EFCore обычно достаточно, но есть более быстрый, но менее удобный Dapper. Тратить время на ADO.NET не стоит.
Алгоритмы — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
Структуры данных — связанные списки, деревья (бинарные, красно-чёрные), хеш-таблицы, графы.
Системы контроля версий — обычно гита достаточно.
Аноним 02/08/22 Втр 23:26:58 2423033 3
>>2423031
Блять, обосрался со вторым постом. Похуй, учту при перекате.
Аноним 02/08/22 Втр 23:36:25 2423039 4
Аноним 03/08/22 Срд 00:06:13 2423052 5
Плюсы лучше шарпа
Аноним 03/08/22 Срд 00:09:18 2423055 6
Аноним 03/08/22 Срд 00:13:13 2423057 7
Аноним 03/08/22 Срд 00:14:10 2423058 8
Аноним 03/08/22 Срд 00:15:17 2423059 9
Аноним 03/08/22 Срд 00:16:14 2423061 10
.png 18Кб, 443x272
443x272
Аноним 03/08/22 Срд 00:17:18 2423063 11
>>2423061
Пиздец, видимо он настолько затаил обиду, что аж месяц только и думал что бы такого написать в шарпотред в итоге сдался и написал тоже что и какой-то анончик в их треде.
Аноним 03/08/22 Срд 00:17:19 2423064 12
>>2423061
Я тут не при чём, я мимо проходил
Аноним 03/08/22 Срд 00:18:43 2423065 13
Аноним 03/08/22 Срд 00:20:19 2423068 14
>>2423065
Сильно же тебя это задело
Аноним 03/08/22 Срд 00:21:39 2423069 15
>>2423068
Честно говоря очень
Аноним 03/08/22 Срд 00:25:28 2423072 16
>>2423069
Ну же вижу что ты разрыдаться готов. Не огорчайся так, ещё вкатишься в нормальный яп
Аноним 03/08/22 Срд 00:27:19 2423075 17
>>2423063
Справедливости ради, ждал он не месяц, а только пять дней.
Аноним 03/08/22 Срд 00:40:09 2423080 18
image.png 28Кб, 1116x403
1116x403
Аноним 03/08/22 Срд 00:42:45 2423081 19
>>2423080
Пойти вслед за кораблём в компайлтайме? Да нехуй делать.
Аноним 03/08/22 Срд 00:48:11 2423086 20
>>2423080
Даже в крестах это антипаттерн. Фичу ввели в те времена, когда всем было похуй, и теперь не будут выпиливать, потому что много говнокода сломается.
Аноним 03/08/22 Срд 03:07:53 2423113 21
>>2423057
Когда завезут нормальные женерики, а не то недоразумение с темплейтами; нормально реализуют модули; и сделают хотя бы одну адекватную систему сборки, а не вот это вот ебантяйство с Make и ручной линковкой всего и вся; нормальное апи для работы со строками и сетью; реализуют нормальную работу с асинхронщиной и многопотоком - тогда и приходи.
Но ебантяи из комитета по стандартизации - лучше будут всякое ненужное говно пихать в стандарт, чем хотя бы что-то из этого сделают; а ебантяи из C++ коммунити - будут руками до последнего линковать, рассказывая, как это охуенно и что это один раз сделал и навсегда(угу, только потом попробуй собрать чужое говно сам и посмотри как это охуенно и один раз и навсегда).
Аноним 03/08/22 Срд 04:02:54 2423116 22
>>2423086
Я бы и обычное наследование только по паспорту сделал.
А то понаделают цепочек, заебывает потом их распутывать при дебаге.
Аноним 03/08/22 Срд 08:56:36 2423176 23
>>2423086
Так можешь или нет не пойму? Твёрдо и четко, да или нет?
Аноним 03/08/22 Срд 12:45:45 2423324 24
>>2423080
Шарп не для индусов создавался, чтобы там сложные родственные связи выстраивать
Аноним 03/08/22 Срд 13:22:20 2423359 25
У джавистов есть Котлин. У обжектив-сипистов есть Свифт. А какое будущее у шарпистов?
Аноним 03/08/22 Срд 13:38:12 2423388 26
>>2423359
В шарп не боятся добавлять новые фичи, да и даже в древнем C# 5, который на любой винде из коробки, больше фич, чем в самой новой жабе. Шарп сам по себе охуеннн, если забыть про легаси для винды.
Аноним 03/08/22 Срд 13:39:36 2423392 27
>>2423359
>А какое будущее у шарпистов?
туманное. даже у плюсовиков появился карбон
Аноним 03/08/22 Срд 13:43:07 2423394 28
Аноним 03/08/22 Срд 14:27:24 2423423 29
Шарпист в треде
Короче как развиваться в плане языка я понял, а вот как поступить с общими знаниями разработчика? Меня если спросят чет связанное с процессом, но не напрямую с кодом, типа шо такое rsa и gpg, сертификаты какие-то, что-то из сисадминского типа джамп хоста или какого-то ебучего протокола, который подразумевается, что ты знаешь, я жидко хрюкну и пойду гуглить отдельные вещи. Как фиксить? Или единственный путь - слышать что-то незнакомое и гуглить? Хотелось бы все же заранее в более общем виде усвоить тему и не обсираться, только не в абстрактном университетском стиле, иначе ниче не запомню.
03/08/22 Срд 14:37:41 2423432 30
>>2423423
>Или единственный путь - слышать что-то незнакомое и гуглить?
Да, всё так. Но есть еще один способ: начни вкатываться в незнакомые тебе темы, например подрочи неделю c++/c/ассемблер, ты толком-то нихуя понимать в нем не будешь, но апнешься в понимании железа и как работает память, к примеру. Или попробуй развернуть свой сервак, купи домен хуё-моё и на дебиан каком-нибудь по гайду из интернета начинай развертывать. Там прикрутишь ci и какой-нибудь контейнеризатор, хуё-моё и через месяц таких вот потуг уже парочку команд в терминале будешь знать, будешь знать как там что настроить примерно. Никто от тебя как от разработчика не будет требовать глубокие знания до момента пока ты не станешь сеньёром/лидом, но там уже всё само собой будет, твоя задача просто быть в курсе и в случае чего метнуться в гугл и не тупить полчаса над тем как бы сформировать запрос на поиск какой-то проблемы.

Разные вопросы относятся к разным областям IT и тут главное поиграться с этой областью недельку-две
Аноним 03/08/22 Срд 15:51:15 2423560 31
>>2423388
>В шарп не боятся добавлять новые фичи
Проблема в том, что из него старые фичи боятся удалять. И еще в том, что работы на нем нет. И в том, что асинхронность имплицитно по имплицитному пулу потоков размазывается. И в том, что его майкрософт пилит, и СПЕЦИАЛЬНО делает исользование селф-хост решений невыносимым. Типа, пили бойлерплейт монолит в 21-м веке, или страдай. Что, сука, не хочешь монолит, а хочешь микросервисы и горизонтальное масштабирование? На, сука, держи микросервисы размером в джва гигабайта одного лишь шаблона. И еще чтобы развернуть - пиши 20 килобайт конфигураций. И 10 классов бойлерплейтов, чтобы оно нормально коммуницировало. И все граничные случаи не забудь, мы это во фреймворк не добавляли. А ты что, сука, думал в попенсорс попал? В одну строчку все разворачивать собрался? Ты что, не мужик, ты что, ноджс-бомж? Наш попенсорс для состоятельных джентельменов, деньги мне заплатил за ажур быстро нахуй, там можно все в одну строчку, как вы, сраные хиппи, любите, только денег заплати. И хули вы рожу скорчили? Нате, подавитесь своим хотрелоадом, уебки немытые, фанаты столмана недоделанные.
Аноним 03/08/22 Срд 16:24:59 2423621 32
>>2423560
>Проблема в том, что из него старые фичи боятся удалять
А что? где то удаляют? Вон в питоне решили все переделать и уже 14 год пошел как "переходят с 2 на 3"

>И в том, что асинхронность имплицитно по имплицитному пулу потоков размазывается
Тут то в чем недостаток? Почему вдруг ДЕФОЛТНАЯ реализация контекста должна быть явная?

>На, сука, держи микросервисы размером в джва гигабайта одного лишь шаблона
шта?

ну и про осталььное ШТА?
Аноним 03/08/22 Срд 16:34:21 2423629 33
>>2423621
2 энд оф лайф уже, на 3-м всё есть
Аноним 03/08/22 Срд 16:43:24 2423640 34
>>2423560
Работа на шарпах даже в моей мухосрани есть, а насчёт микро сервисов вообще не выкупил, сейчас студия за тебя и докер файл сделает и оркестрацию только кнопочки потыкай
Аноним 03/08/22 Срд 16:48:21 2423644 35
Когда юзаю MemoryMappedFile, и создаю MemoryMappedViewAccessor с размером выше 4096, выдает ошибку с отказом в доступе. Что это? Писали, что чуть ли не гигабайты там можно хранить.
Аноним 03/08/22 Срд 16:48:59 2423645 36
>>2423629
да да. после 14 лет то.
1 многие либы поддерживают обе версии. в итоге "(цензура) тебе, а не type hints". "Пиши код в IDE как в блокноте". Романтика
2 "все есть" это слишком абстрактное понятие. Для тебя может все есть, а для другого чего то нет.
3 поддержка 2х версий то еще занятие. И почему то по прошествии стольких лет не наблюдается чтобы все выбросили поддержку. А из этого пункт 1

А вообще примерно что то такое и сделали когда нет кор делали. Кучу всего зарубили и создали кучу проблем при переходе. Уже сколько лет ему и почему еще куча народу сидит на 4.8 если ерунда переходить
Аноним 03/08/22 Срд 16:51:23 2423648 37
>>2423645
Всё шарпогалеры в моей мухосрани на нет коре 6 сидят, хотя продуктам их по десятку лет
Аноним 03/08/22 Срд 16:54:36 2423656 38
>>2423648
но это не значит что все в мире перешли и 4.8 закопали

>>2423644
ну в примере на мсдн используется окно в 512 метров
значит можно
Аноним 03/08/22 Срд 16:56:57 2423659 39
>>2423656
Ну не переходят по причинам:
А - никому это не упало
Б - руководство не выделяет на это бабки
Аноним 03/08/22 Срд 17:00:09 2423664 40
>>2423659
а я разве спорю
просто вырезая старые фичи несомненно получишь ситуацию где работают на старье ибо тупо перейти не могут / дорого стоит / долго.

И потому желать бринкинг ченжи что не приносят нового, а тупо удаляют старое,...ну вы поняли.
Аноним 03/08/22 Срд 17:03:37 2423669 41
Аноним 03/08/22 Срд 20:23:45 2423907 42
Чем Type отличается от object?
Аноним 03/08/22 Срд 20:30:03 2423918 43
>>2423907
Туре описывает характеристики класса, а оЬjест - экземпляра.
Аноним 03/08/22 Срд 20:31:36 2423922 44
>>2423918
Жерстко конечно, но спасибо.
03/08/22 Срд 20:34:43 2423930 45
>>2423907
Type это вся возможная информация о каком-то типе данных: структура, класс, рекорд, делегат, событие итд, а объект - это экземпляр конкретного класса, структуры или рекорда.
Аноним 03/08/22 Срд 22:33:28 2424082 46
C# unity разработка вообще сейчас на
нормальное направление? Слышал, что юнити подыхает
Аноним 03/08/22 Срд 22:40:16 2424089 47
>>2424082
>Слышал, что юнити подыхает
Пиздаболы ебаные. Сейчас наоборот дефицит в геймдеве лютый т.к никто не хочет им заниматься
Аноним 03/08/22 Срд 22:48:29 2424095 48
>>2424089
Как же, дефицит, заходишь на условный хедхантер а больше нет ничего и видишь там всего 100 вакансий, и везде надо быть сеньором.
Заниматься хочет много кто, дохуя народу начинает изучать программирование именно с мечтой писать игры, но как увидят, что в вебе тысячи джунских вакансий, а в геймдеве нихуя, желание пропадает моментально.
Аноним 03/08/22 Срд 23:02:29 2424102 49
>>2424082
Юнити не подыхает. Подыхает сам геймдев.
Аноним 03/08/22 Срд 23:04:27 2424104 50
>>2424095
>а в геймдеве нихуя
Просто программисты в геймдеве не особо и нужны сейчас. Сейчас гораздо больше ценятся геймдизайнеры, сценаристы, художники.
Аноним 03/08/22 Срд 23:11:11 2424114 51
>>2424095
>и везде надо быть сеньором.
У меня год назад не было опыта, позвонили из Кефир + написали на почту с просьбой пройти собес, лол. У меня даже опыта в геймдеве не было вообще (в резюме только десктоп был)
Аноним 03/08/22 Срд 23:27:45 2424132 52
Где можно поподробнее изучить Linq?
Аноним 03/08/22 Срд 23:30:47 2424134 53
>>2424132
Чтобы те, кто его поподробнее не изучал, не могли читать твой говнокод?
Аноним 03/08/22 Срд 23:34:04 2424135 54
>>2424132
Что именно тебя интересует? Как он внутри работает или как пользоваться?
Аноним 03/08/22 Срд 23:36:02 2424137 55
>>2424135
Первое. Хочу узнать, что там под капотом.
Аноним 03/08/22 Срд 23:52:23 2424146 56
>>2424137
source.dot.net - исходники
sharplab.io - декомпилятор в IL, ASM и так же то, что делает компилятор С# под капотом

гугли еще что такое IEnumerable и IEnumerator.
Аноним 04/08/22 Чтв 00:23:37 2424162 57
List или []?
Аноним 04/08/22 Чтв 00:26:00 2424163 58
Аноним 04/08/22 Чтв 00:27:30 2424165 59
Аноним 04/08/22 Чтв 00:27:41 2424166 60
Аноним 04/08/22 Чтв 00:29:44 2424167 61
>>2424166
То есть Task<List<T>> или Task<T[]>? Ты можешь нормально объяснить?
Аноним 04/08/22 Чтв 00:32:41 2424169 62
Аноним 04/08/22 Чтв 00:36:34 2424171 63
Аноним 04/08/22 Чтв 00:39:13 2424173 64
>>2424171
Пизда. Синее или красное?
Аноним 04/08/22 Чтв 00:41:14 2424176 65
Аноним 04/08/22 Чтв 00:43:16 2424177 66
Аноним 04/08/22 Чтв 00:43:50 2424178 67
>>2424176
В таком случае Task<T[]>
Аноним 04/08/22 Чтв 00:44:45 2424179 68
Аноним 04/08/22 Чтв 00:55:13 2424182 69
>>2424177
Ты бы ещё карбон посоветовал, толстяк.
Аноним 04/08/22 Чтв 01:16:06 2424186 70
Аноним 04/08/22 Чтв 02:09:22 2424201 71
image.png 7Кб, 353x265
353x265
>>2423030 (OP)
Выручайте. как сделать форматирование строки прально?

Стоит visual studio 2022 с Resharper. В Visual studio 2019 такой проблемы не было, я там пересмотрел все настройки по шарпу, но чет вообще не нашел.

Очистка профиля стоит при сохранение файла.
Аноним 04/08/22 Чтв 09:29:01 2424275 72
>>2424186
Леброн
я бы перешол
Аноним 04/08/22 Чтв 10:10:16 2424309 73
Как HTTPClient'ом читать Content (то есть все эти String/FileResultContent)?
Аноним 04/08/22 Чтв 11:13:30 2424354 74
>>2423030 (OP)
В предыдущем треде, хотел реализовать хранение хэш-таблицы (key-value) так, чтобы она могла вместить BigData.
Запилил вот эту еботу: https://github.com/username1565/KeyValue/tree/SimpleTXTStorage
но чёт она серанула с биг-датой, потому что string.Length там гигабайт где-то, а файлы читаются в строчки.

Анон предлагал всякое, юзать провайдеры для других баз, вроде mongo, portgresql, хуй знает что делать.

Но один анон написал это:
>даже в sqlite даже можно загрузить 281 ТБ (а еще можно сделать attach таких же 125 баз)
Короче, блядь, расчехлил свою PISDA.cs и заебенил это https://github.com/username1565/KeyValue/tree/SQLite3Storage
Можете потестить.

Хуй знает сколько эксабайт оно сможет вместить, но вроде робит.

Аноним 04/08/22 Чтв 11:28:45 2424370 75
>>2424354
>хотел реализовать хранение хэш-таблицы (key-value)
Ты че ебанутый? Хранить несколько гигов говна в памяти? Юзай бля Redis и не еби мозги
Аноним 04/08/22 Чтв 13:39:30 2424587 76
Аноны, у моих сервисов есть различные методы с коллбеками, которые нельзя вызывать до тех пор, пока они не выполнят работу. Допустим, метод Authenticate:

- public void Authenticate(Action<SignInStatus> callback)
- public enum SignInStatus { Failure, Success, Pending, AccountBanned }

Вопрос насчёт Pending. Этот статус возвращается в случае, если ты обратился к методу Authenticate, а он ещё не завершил прошлый запрос.

Правильно ли называть такой статус Pending? Или это скорее AlreadyInProgress?
Аноним 04/08/22 Чтв 13:57:33 2424599 77
Аноним 04/08/22 Чтв 13:59:23 2424600 78
>>2424370
>Хранить несколько гигов говна в памяти? Юзай бля Redis
А редис где гранит?
Аноним 04/08/22 Чтв 14:04:08 2424603 79
>>2424309

многочисленные response.Content.ReadAs*, в том числе и расширения, например

response.Content.ReadAsMultipartAsync()

или расширения более высокого уровня вида

client.GetFromJsonAsync(...
Аноним 04/08/22 Чтв 14:05:08 2424604 80
>>2424201
очистка чем? чем чистишь то. у решарпера свой механизм, у студии свой.
Аноним 04/08/22 Чтв 14:39:20 2424628 81
>>2424600
Сука ты меня уже доебал
Аноним 04/08/22 Чтв 15:14:35 2424652 82
>>2424600
Просто используй редис, чел. Это топовое решение.
Аноним 04/08/22 Чтв 15:32:47 2424661 83
>>2424652
золотой молоток (с)
Аноним 04/08/22 Чтв 15:33:30 2424662 84
image.png 13Кб, 369x300
369x300
Как вы относитесь к #region в коде? Используете? Если используете, то можете показать пример вашего кода?
Аноним 04/08/22 Чтв 15:35:11 2424664 85
>>2424662
>Как вы относитесь к #region в коде
Негативно.
>Используете?
Крайне редко
Аноним 04/08/22 Чтв 15:38:44 2424665 86
>>2424662
>Как вы относитесь к #region в коде?
положительно.
>Используете?
когда тяжелые классы с кучей методов.
Аноним 04/08/22 Чтв 15:51:20 2424674 87
Аноним 04/08/22 Чтв 15:57:31 2424678 88
>>2424662
Если это какой-нибудь запрос к БД или какой бойлерплейт, то да
Аноним 04/08/22 Чтв 15:58:45 2424680 89
>>2423030 (OP)
https://hh.ru/vacancy/68273729
>Вакансия опубликована 3 августа 2022 в Новосибирске
>Откликнулся уже 1081 человек

Вкатуны, ебало ваше можно?
Аноним 04/08/22 Чтв 16:05:34 2424686 90
image.png 54Кб, 270x173
270x173
>>2424680
Они ещё и далеко от центра, в самой жопе.
Аноним 04/08/22 Чтв 16:34:40 2424706 91
>>2424662
Негативно Обычно если тебе хочется по какой-то причине завести region в теле класса, то скорее всего твой класс просится, чтобы его нужно разбили на несколько.
Плюс у меня первый тимлид очень сильно загонялся по тому, что все члены класса должны быть разбиты по регионам по их типу и модификаторы доступа (public constructors, public properties, protected properties, public methods и т.д.) На ревью МР-ов всегда доебывался. Читаемости это файлам не добавляло, зато бесило знатно. Благо я быстро допер , что можно поставить и настроить CodeMaid и прожимать его автоформатирование перед комитетом.
Аноним 04/08/22 Чтв 16:38:20 2424709 92
image.png 63Кб, 701x1234
701x1234
>>2424706
> все члены класса должны быть разбиты по регионам по их типу и модификаторы доступа
Ну это уже совсем шиза. Хотя это можно встретить даже в коде .NET Runtime, типа пикрелейтед.
Аноним 04/08/22 Чтв 16:38:30 2424710 93
>>2424686
Общался с ними года два назад, когда был переиюнем-недомидлом и искал работу. Предложили тестовое на 16-24 часа ещё до собеседования, из-за чего вежливо были посланы куда подальше.
Аноним 04/08/22 Чтв 17:10:27 2424727 94
>>2424662
>Как вы относитесь
Нормально
>Используете
Да, но редко.
Аноним 04/08/22 Чтв 17:23:01 2424735 95
>>2424162
Знаешь точно сколько данных тебе чего нужно - массив. Не знаешь - List
Все просто.
List - по факту в шарпе - обертка над массивом, которая буквально все что делает - хранит положение "курсора", при вставке происходит проверка вида:
if(Length + 1 > Capacity)
{
var temp = new T[Capacity * 2];
Array.Copy(_array, temp);
_array = temp;
}
... остальная логика вставки

Чтобы ты этой хуйней не занимался - сделали List
Аноним 04/08/22 Чтв 19:29:07 2424832 96
>>2424706
Тимлида случайно не Денис звали? У меня был такой, требовал выделять region-ами каждую группу вроде properties, events, fields, methods, а в каждой группе еще и отдельные регионы по модификаторам доступа
Все это если в классе есть хотя бы два экземпляра чего угодно
Аноним 04/08/22 Чтв 20:13:50 2424855 97
1659633229775.jpg 29Кб, 465x285
465x285
>>2424832
Его звали Роберт Полсон.
Аноним 04/08/22 Чтв 20:49:16 2424890 98
>>2424662
1 раз по рофлу сделал
Аноним 04/08/22 Чтв 21:20:25 2424909 99
>>2424162
Нахуя вообще нужны массивы когда есть списки? Единственное где я их встречал, это собес в Яндекс да, там был C#
Мимо 3 годика
Аноним 04/08/22 Чтв 21:43:10 2424924 100
>>2424909
А как же массивы byte?
Аноним 04/08/22 Чтв 21:43:20 2424925 101
>>2424909
Для того чтобы реализовывать свои списки и другие структуры данных, вестимо.
Плюс для случаев, когда приходится применять ArrayPool, чтобы не шатать GC.
Аноним 05/08/22 Птн 17:11:42 2425507 102
Аноним 05/08/22 Птн 23:42:54 2425884 103
2022-08-0523-36[...].png 24Кб, 604x130
604x130
А можно как-то в WPF контролировать размеры иконок и где они вообще хранятся? Через свойства проекта чет пизданулось и иконка теперь не хочет обновляться.

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

У меня иконка в режиме огромных значков не хочет масштабироваться (пикрил самая правая, ток не надо тут политоты, это не про то вообще), даже если попытаться впихнуть иконку размером 512х512 (кстати на этом этапе у меня поломалось обновление иконки). Я уж не говорю какой кромешный пиздец получается, если загрузить даже 256х256 и ужать до размеров 16х16.

При этом я наблюдаю как это сделано у других приложений и там иконки не то что успешно масштабируются, но и еще могут перейти в режим превью (например видеофайлы и изображения)

В сети хуета какая-то с предложением загрузить через свойства проекта.
Аноним 05/08/22 Птн 23:51:55 2425889 104
>>2424735
Я думал в куче создается еще один итем, а в предыдущем вставляют указатель на него. А у тебя не список а динамический массив какой-то.
Аноним 05/08/22 Птн 23:57:44 2425899 105
>>2424662
Положительно отношусь. Для меня это как логическе группы и порой лучше, чем создавать Partial Class.
К тому же автоколлапс удобно все складывает.

Правда я веще люблю дописывать прочерки, типа

#region "-- My method --------------------------"
#endregion "-- My method --------------------------"
Аноним 06/08/22 Суб 00:12:35 2425916 106
>>2424706
>то скорее всего твой класс просится, чтобы его нужно разбили на несколько.

У меня постоянно возникает дилемма с неймингом partail классов:
1) ты называешь файл так же, как класс и тогда у тебя куча:
MyClass, MyClass, MyClass, MyClass в которых хуй проссыш что где.
2) ты называешь в соответствии с логикой блока, но тогда получаешь вермишель из названия MyClassEhalGrekaCherezReku, при этом:
2.1) Название вкладки отжирает полэкрана и вообще нечитабельно
2.2) Нарушается синхронизация между фактическим названием класса и названием файла.
Аноним 06/08/22 Суб 01:17:00 2425962 107
>>2425916
Нахуя тебе нужны partial классы? Для чего ты их используешь?
06/08/22 Суб 07:01:19 2426030 108
Петушарп ин э натшелл.
ДЖАВИСТЫ ПРИДУМЫВАЮТ SPRING
@
ПЕТУШАРПЕРЫ КОПИРУЮТ И ДЕЛАЮТ SPRING NET
@
ДЖАВИСТЫ ПРИДУМЫВАЮТ HIBERNATE
@
ПЕТУШАРПЕРЫ ДЕЛАЮТ РЕВОЛЮЦИЮ В ООП ПОД НАЗВАНИЕМ NHIBERNATE
@
В ЖАБУ ДОБАВЛЯЮТ ЛУМ
@
ЧЕЛЯДЬ, НОВШЕСТВО! ЗЕЛЁНЫЕ ТРЕДЫ! ЖРИТЕ!
@
ДЖАВИСТЫ НАЧИНАЮТ ПЕРЕКАТЫВАТЬ ТРЕД КАЖДЫЕ 500 ПОСТОВ
@
ПЕТУШАРПЕРЫ НАЧИНАЮТ ПЕРЕКАТЫВАТЬ ТРЕД КАЖДЫЕ 500 ПОСТОВ
@
В ДЖАВА ТРЕДЕ В ШАПКЕ СНОВА АНИМЕ
@
В ПЕТУШАРП ТРЕДЕ В ШАПКЕ СНОВА АНИМЕ
Аноним 06/08/22 Суб 08:30:19 2426048 109
>>2426030
>SPRING NET
>NHIBERNATE
Эту хуйню никто не использовал и никогда не станут юзать, залетный дебил
Аноним 06/08/22 Суб 08:53:25 2426051 110
Мда чел
Аноним 06/08/22 Суб 09:45:12 2426064 111
>>2425889
Ну так стандартный List<T> и есть по сути динамический массив. Хочешь трушный связный список - юзай LinkedList<T>
Аноним 06/08/22 Суб 09:57:25 2426067 112
>>2425962
Ну когда есть методы, которые можно логически обособить, но которые не нужны за пределами использования одного конкретного класса. Когда есть общие поля.

Просто класс? Ну допустим я хочу вынести все подписки на UI-элементы в отдельный блок. Это превратится в дополнительный гемор. И мне все равно нужно как-то указать, что этот класс принадлежит к конкретному классу окна и он не применим к другим. И в итоге получим Partial Class через жопу и для которого еще надо создавать экземпляр, и как-то передать 20 полей. Нахуй надо.

Что еще? Использовать наследование по моему мнению нужно, когда вариаций наследников больше одного. А когда у тебя ровно один наследник, то это ничто иное как partial class.
Аноним 06/08/22 Суб 10:42:32 2426077 113
>>2425884
Разобрался. Оказывается в .ico можно хранить стак изображений разной величины, а шиндовс потом автоматом оттуда берет нужный объект. И все это можно тонко настроить в стандартном редакторе студии, если нужно, чтобы под кажыдй размер была своя уникальная картинка, а не просто скейлинг.

А "не обновлялось" у меня раньше потому, что конвертер за каким-то хуем сделал в формате 32бита, несмотря на исходник, а студия переваривает цветовую градацию максимум в 24 бита. даже в редакторе студии 32 бита недоступны, изображение просто лочится.
06/08/22 Суб 11:20:47 2426095 114
Насколько нужно быть наглухо отбитым долбоебом, чтобы переносить на новую строку {, но не переносить (? Алсо, какое же говноедство писать методы с большой буквы, мне страшно представить ваши ёбла, уроды
Аноним 06/08/22 Суб 12:02:35 2426132 115
>>2426095
Есть три типа клинических уебанов, которые перекладывают свои проблемы с ОКР на плечи окружающих:
графические дизайнеры, гопники и программисты.

Перед нами совершенно конченый подвид уебана, который помимо общепринятых в их ссаных кругах триггеров, выдумал свой собственный: видите ли методы с большой буквы писать нельзя, охуеть вообще.

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

И то, что ты тут горишь — исключительно последствия особенностей твоего языка и класть болт на читабельность ради удобства, это высшая мера уебанства.
Аноним 06/08/22 Суб 12:20:11 2426153 116
>>2426095
Не рассказывайте додстеру про линтеры и форматтеры
Аноним 06/08/22 Суб 16:25:30 2426312 117
Без вышки есть смысл скуфу вкатываться в С# ? или путь один в php / js / ruby ?
Аноним 06/08/22 Суб 20:02:38 2426458 118
>>2426312
Вышка это как цвет кожи.
Вот если ты белый, то вопросов к тебе минимум. Если же имеешь оттенок, то сразу будут вопросы, а не пушишь ли ты наркоту, не роббишь ли дома и т.д. И похуй, что будучи белым, ты можешь оказаться тем еще маньячилой насилующим котят, главное, что при первой встрече к тебе меньше вопросов будет.
Точно так же и с вышкой. Есть диплом - проходи, дальше разберемся. Нет, ну тогда готовь анус - сейчас будем проверять тебя за всю хуйню.

>>2426312
>Без вышки есть смысл скуфу вкатываться в С#
Да есть, но ты должен быть достаточно энергичным, чтобы успевать за тенденциями. В шарпе сейчас много. чего меняется и надо быть на волне.
Аноним 06/08/22 Суб 20:45:59 2426521 119
>>2426458
> В шарпе сейчас много. чего меняется и надо быть на волне.
Зочем майки ето делают? Вот в goвне наоборот топят за минимум фич, и он сейчас очень в вебе популярен стал
Аноним 06/08/22 Суб 22:32:38 2426634 120
>>2426030
Майки еще в нулевые создали шарп для того чтобы он был заточен под асп.нет - джава дебилы делают спринг спустя 10 лет который позволяет делать то же, что и шарп.
Майки придумали linq еще в нулевые - джава через 15 лет спиздила и назвала хибернейт.
Аноним 07/08/22 Вск 00:40:05 2426733 121
>>2426634
Да да. Так и было
Ну всякие мелочи что хибернейт вышел наполгода раньше чем появился шарп, но то наговаривают
Аноним 07/08/22 Вск 02:53:06 2426790 122
>>2426634
Пфф. LINQ. 900 строк кода на Scheme - и готов твой LINQ.
Аноним 07/08/22 Вск 04:07:21 2426801 123
>>2426790
Ну так то LINQ разный бывает
Аноним 07/08/22 Вск 05:56:08 2426811 124
image.png 381Кб, 600x400
600x400
>>2426030
ОН МОЯ КОНКУРЕНТ. ORACLE JAVA. БОЛЬ В МОЯ ДЫРКА ЗАДНИЦА. Я ДЕЛАЙ LINQ, ОН ДЕЛАЙ STREAM. Я ДЕЛАЙ ДЖЕНЕРИК, ОН ДЕЛАЙ ДЖЕНЕРИК. Я ДЕЛАЙ ASYNC/AWAIT. ОН НЕ СМОГ. РАДОСТНО!
Аноним 07/08/22 Вск 06:22:46 2426821 125
>>2426811
>Я ДЕЛАЙ LINQ, ОН ДЕЛАЙ STREAM.
Я делай LINQ Expression, он делай ?????

>Я ДЕЛАЙ ДЖЕНЕРИК, ОН ДЕЛАЙ ДЖЕНЕРИК
Говорят, дженерик то НЕ НАСТОЯЩИЙ

>Я ДЕЛАЙ ASYNC/AWAIT. ОН НЕ СМОГ. РАДОСТНО
Кстати да. Возможность писать асинхронный код как синхронный это не мелочь по карманам тырить. Киллер фича
Аноним 07/08/22 Вск 10:53:12 2426900 126
>>2426521
>Зочем майки ето делают?
Так исторически сложилось. Чтобы обогнать жабу по популярности им пришлось впиливать новые фичи тоннами. И что самое смешное, обогнать жабу так и не смогли, увы, потому что поздно пришли в линукс.
Но зато у шарпа есть какой-то процент рынка, что уже неплохо.

>>2426634
>создали шарп для того чтобы он был заточен под асп.нет
>придумали linq еще в нулевые - джава через 15 лет спиздила и назвала хибернейт
Толсто.
Аноним 07/08/22 Вск 13:06:49 2426978 127
Если создать экземпляр окна в одном потоке, а запустить в другом, это сработает как работа окна в другом потоке?
Аноним 07/08/22 Вск 13:41:53 2427006 128
Аноним 07/08/22 Вск 14:34:02 2427039 129
16549441690230.mp4 781Кб, 512x512, 00:00:02
512x512
>>2426030
Как же джавистам "похуй". Они даже в каждом ОП-посте обязательно указывают C# в уничижительном ключе.
Аноним 07/08/22 Вск 14:47:24 2427043 130
>>2427039
Двачую, уже не выдерживают у них нервы, не знают что бы такого написать. А ведь всё началось с того, что я один раз написал в их треде, сейчас они уже в трёх-четырёх перекаченных тредах пытаются что-то там высрать про шарп
Аноним 07/08/22 Вск 17:13:53 2427271 131
>>2424832
>Денис
Кажется я тоже знаю одного Дениса с такими наклонностями
Аноним 07/08/22 Вск 17:17:19 2427280 132
Есть какая-то литература по слоеной архитектуре? С примерами на шарпе? Все спасибо
Аноним 07/08/22 Вск 18:03:49 2427377 133
>>2426030
>SPRING
Ненужное говно. Срсли. ASP - пижзе.
> HIBERNATE
Туда же. EF - пизже
> ЛУМ
В чем профиты, кроме того что внешне это выглядит как поток, а не как Task - я так и не понял. Может быть тупой.

А в остальном. Я не понимаю, хули жавистам так печет. Типа заебало сидеть на легаси, а для новых проектов таки берут либо котлин либо шарп? Ну, звиняйте. Никто не хочет ваше добро на новые жаватехнологии переписывать, а старая жава - пиздец ужасна. Еще и наворотили зоопарк систем сборок такой, что старый проект хуй соберешь без мастера некроманта. Так что да.
Аноним 07/08/22 Вск 18:20:41 2427399 134
Когда в шарп завезут мультипарадигмальность?
Я хочу чтобы ООП - был вариантом, а не намертво приколоченной хуйней.

Ну серьезно, я надеялся, что с введением Top level statements - оно пойдет в том направлении. Но что-то я не вижу больше сподвижек.

А ведь как удобно было бы какой-нибудь простенький граббер пилить как на сях. Просто пару функций заебенил и доволен. Начала программа разростаться - ну, пора об ООП задуматься. Не. Это не наш путь. Давайте ООП будет приколочено намертво.

Как же я бы хотел, чтобы деды на работе так не хейтили F#. Так удобно многие штуки на нем делать. Но не. Дедам не нравится ЕЩЕ ОДИН ЯЗЫК!!! И я как-бы понимаю. Но фишек там прикольных слишком много.
07/08/22 Вск 18:30:07 2427408 135
>>2427399
>Когда в шарп завезут мультипарадигмальность?
Никогда, надеюсь. Для этого есть F#. Я вообще думаю через лет 5 перекатываться в F# и функциональщину, а то меня эта ебатория с ООП, паттернами, правильными правилами просто настоебенила. Скукота...
Аноним 07/08/22 Вск 18:33:17 2427411 136
>>2424114
А ты и сейчас десктоп? Я молодой джунишка-вкатунишка, сейчас тоже сижу на десктопе. Как грамотно подойти к самообразованию, чтобы потом в веб перекат сделать? P.S. Изначально вкатывался на жабу со спрингом, но в последний момент подвернулся варик с норм работкой на шарпе.
Аноним 07/08/22 Вск 18:43:02 2427424 137
>>2427411
>А ты и сейчас десктоп?
Я начал с десктопа, но потом насильно перекатился в веб поскольку в моем провинциальном городке тяжко с работой. Планирую в ближайшие 2-3 года съебаться в ДС2 и уже заниматься формошлепстов на WPF.
>Я молодой джунишка-вкатунишка
Да я тоже, всего лишь год опыта коммерческого.
>Как грамотно подойти к самообразованию, чтобы потом в веб перекат сделать?
Нужны скорее более общие знания, чем непосредственно глубокие в ASP.NET Core, тебя скорее всего в вебе заставят клепать веб-апишки первое время, прям как меня. Если обобщить, то знания архитектуры приложений DDD/CHO и DI даст тебе больше, чем углубленные знания в самом ASP.NET Core. Это конечно не означает, что надо совсем забить хуй на платформу и идти дрочить сетевые протоколы
Аноним 07/08/22 Вск 18:50:38 2427436 138
>>2427424
Че по зэпке? Мне про сотыгу через год говорят, но 2 друга жабиста по 160к с годом попыта в вебе имеют, хочется примерно также присосаться
Аноним 07/08/22 Вск 18:50:59 2427437 139
>>2427408
А я вот надеюсь, что таки завезут.

И я вот за время работы с TS и JS парралельно - полюбил кучу фишек оттуда. Мне больше нравится как в ES6 сделаны импорты чем как оно в шарпе. Мне кажется удобным как сделаны экспорты. Мне хотелось бы чтобы я так же мог спокойно определить пару служебных функций не создавая статический класс с ними. Вообще - JS, если бы не был так сильно привязан к вебу - был бы топовым языком как по мне. Очень удобный. Очень гибкий. И штуки которые внедряются - действительно хорошие. При этом он не ушел в ту шизофрению, куда пошли плюсы, и не остается на месте как Си.
Аноним 07/08/22 Вск 18:54:49 2427440 140
>>2427436
50к выход после налогов, ну это еще норм т.к я примерно 4 месяца на текущей работе, до этого пинал хуи на заводе программистом где пытался самобучаться, так что можно сказать, что коммерческого опыта - год, а нормального - 4 месяца.
Аноним 07/08/22 Вск 18:55:31 2427441 141
>>2427437
>А я вот надеюсь, что таки завезут.
Я бы хотел чтобы завезли АОП полноценное
Аноним 07/08/22 Вск 19:50:16 2427473 142
изображение.png 34Кб, 725x214
725x214
изображение.png 33Кб, 722x191
722x191
изображение.png 33Кб, 742x194
742x194
Как писать последний аргумент функции, с отступом и скобочкой на следующей строке, или без отступа и скобочкой в той же строке? А может с отступом и скобочкой в той же строке?
Аноним 07/08/22 Вск 19:55:31 2427477 143
>>2427473
Считаю не стоит переносить, как на 3.
Аноним 07/08/22 Вск 20:31:19 2427523 144
>>2426458
>ты должен быть достаточно энергичным
Я начал с фронтенда про быстроту наслышан, заметил что на шарпе много фуллстек вакансий с фронтом, в основном на ангуляре, поэтому заинтересовался, на джаве к примеру таких вакансий не замечал особо.
Получается можно в соло что то пилить на шарпе ? Или просто экономят на фронтендерах.
Аноним 07/08/22 Вск 20:41:05 2427537 145
>>2427473
Если (открывающая скобка на новой строке)
{
тогда закрывающая тоже на новой;
неважно, какая это скобка(
фигурная,
круглая,
квадратная,
угловая);
}
Аноним 07/08/22 Вск 20:59:58 2427574 146
>>2427523
>Или просто экономят на фронтендерах.
А зачвем много фронтов? Быстро делать дизайн по фигме любой даун сможет
Аноним 07/08/22 Вск 21:21:26 2427609 147
>>2427574
И всё же на это надо тратить время. ещё и переключаться между двумя проектами, в одном бэк, в другом фронт. Когда можно сосредоточиться на бэке, как белый человек, а всю чёрную работу отдать вебмакакам.
Аноним 07/08/22 Вск 21:32:51 2427628 148
>>2427609
>Когда можно сосредоточиться на бэке, как белый человек, а всю чёрную работу отдать вебмакакам.
Ну тащемта всё так и есть. Даже у меня на аутсорс галере есть блядина и еще пара долбоёбов которые верстают дрисню, а я и еще пара бравых ебашут бэк.
Аноним 07/08/22 Вск 21:54:49 2427654 149
>>2427440
А зачем дс2. Удаленно же можно найти. Ну через годик.
Аноним 07/08/22 Вск 21:56:15 2427658 150
>>2427574
>любой даун сможет
Анон я же не просто так написал про ангуляр и нест, у вас какие то понятия о фронте из 2000-х где с сервака шаблон отдаешь с формочкой. Посмотри проект на несте тс, там по типу спринга архитектура, это же не бутстрап.
Аноним 07/08/22 Вск 22:35:45 2427705 151
image.png 269Кб, 640x640
640x640
>>2427658
Да похуй мне чем там во фронте. Я перекладываю жсоны и мне норм.
Аноним 08/08/22 Пнд 01:49:00 2427777 152
>>2427523
>Или просто экономят на фронтендерах.
This.
Да один из видов экономи, причем достаточно тупой.
Аноним 08/08/22 Пнд 09:17:14 2427849 153
Здрасьте, давно не пользовался этим вашим дотнетом. С какой версии можно юзать всякие Console, LinkedList и тд без using?
Аноним 08/08/22 Пнд 09:21:07 2427854 154
>>2427849
Если тебе надо всё делать в одном файле - то .NET 6, если тебе надо юзать сабжи в разных файлах - то ни в какой. Алсо если ты в VS то можешь нажать комбинацию клавишу "Ctrl + .", откроется окошко и можно будет выбрать подключение юзинга, если требуется.
Аноним 08/08/22 Пнд 09:24:14 2427859 155
>>2427854
Я просто не понял какого хуя я залетел щас в вижлу и могу спокойно юзать Linked list и Console без подключения пространств имён
Аноним 08/08/22 Пнд 09:27:28 2427862 156
>>2427859
Хочешь юзать нервничая?
Аноним 08/08/22 Пнд 09:28:45 2427864 157
>>2427862
Я разобрался, это implicit юзинги
Аноним 08/08/22 Пнд 09:28:48 2427865 158
>>2427862
Аж трисёт при написании using.
Аноним 08/08/22 Пнд 09:29:17 2427866 159
>>2427859
Ну это новый синтаксис класса Program, Ты можешь опять сделать структуру Program { Main() {}}, такой синтаксис сейчас вообще во всех проектах на .NET 6+
Аноним 08/08/22 Пнд 09:42:39 2427872 160
>>2427864
Только почему из вижлы нельзя посмотреть какие глобальные юзинги используется в проекте?
Аноним 08/08/22 Пнд 11:02:34 2427900 161
Почему когда я использую
MemoryMappedFile sharedMemory = MemoryMappedFile.CreateOrOpen("MemoryFile", size * 2 + 4);

то все работает норм, но если я это оберну в using, то при попытке чтения пишет, что не удалось найти указанный файл.
Аноним 08/08/22 Пнд 12:40:06 2427974 162
Анон, а кто-то сейчас юзает треды? Я имею ввиду классическое использование:
Thread thread = new Thread(delatHuetu);,
когда мы руками раскидываем методы по разным тредам.

На ютубах почему-то вообще ничего по теме нету, только античные видосы 8-10-летней давности, остальная выдача вся про async/await. Может новый способ теперь какой-то более модный есть?
Аноним 08/08/22 Пнд 13:02:58 2427980 163
Нуб в треде.

Делаю консольный блекджек на C#, и у меня есть класс-рисовальщик карт.
В зависимости от типа карты он отрисовывает её.. Так вот, как избавиться от кучи if-else(я слышал что это плохой код)

у меня что-то типа
if (card== 'A')
...
else if (card=="K")
...
else if(card=="10")
....
08/08/22 Пнд 13:12:21 2427983 164
>>2426634
>>2426811
ДЖАВИСТЫ ЗАЯВЛЯЮТ О ТОМ, ЧТО ПЕТУШАРПЕРЫ КОПИРУЮТ ВСЁ С ДЖАВЫ
@
ПЕТУШАРПЕРЫ ЗАЯВЛЯЮТ О ТОМ, ЧТО ДЖАВИСТЫ КОПИРУЮТ ВСЁ С ДЖАВЫ

Ору блять.
08/08/22 Пнд 13:15:06 2427985 165
Аноним 08/08/22 Пнд 13:15:12 2427986 166
>>2427983
@
И ТЕ И ЭТИ КОПИРУЮТ COMMON LISP
Аноним 08/08/22 Пнд 13:15:38 2427987 167
Аноним 08/08/22 Пнд 13:17:41 2427990 168
>>2427980
>В зависимости от типа карты он отрисовывает её
Плохой подход, у тебя 30 карт (или скока там хз) и ты под каждую рисуешь отдельную хуйню, так нельзя.

>Так вот, как избавиться от кучи if-else(я слышал что это плохой код)
Всё так, это пиздец а не код. Во-первых не используй строковые константы для сравнения чего-либо, для этого есть enum, во-вторых используй switch-case если у тебя действительно дохуя условий. В-третьих если у тебя выходит так, что код строится на дохуя условиях - он спроектирован неправильно бывают исключения, например MSIL инструкции, они обрабатываются по разному и для них switch-case уместен.

Сделай массив карт и отрисуй их в самом начале, а потом уже используй только те, которые на столе. Я не шарю в карточных играх, но если у тебя есть определенные "типы" карт, то ты можешь сделать класс который будет содержать нужный тебе тип карты, в таком случае количество условий уменьшится.
08/08/22 Пнд 13:18:13 2427991 169
>>2427980
На петушарпе никак.
Аноним 08/08/22 Пнд 13:18:34 2427992 170
>>2427974
Никто треды не юзает потому что они нахуй не нужны. С ними слишком много ебатории, всякие дедлоки хуёки и прочее, легче юзать await Huita() и всё норм.
Аноним 08/08/22 Пнд 13:19:06 2427993 171
>>2427983
Один хуй все новые фичи сначала появляются в хачкелях окамлах смоллтолках и прочих экспериментальных языках, а только потом уже в унылый энтерпрайз их запихивают.

>>2427974
Треды мало кто использует сейчас. В основном тредпулы, которые скрыты под несколькими слоями абсракций.
Аноним 08/08/22 Пнд 13:19:11 2427994 172
08/08/22 Пнд 13:19:18 2427995 173
>>2427992
Да, а потом глубинные баги отлавливать.
08/08/22 Пнд 13:20:13 2427996 174
Аноним 08/08/22 Пнд 13:22:21 2427998 175
>>2427995
>>2427996
Хуя у джавадебила пригорело, ты чего так взорвался? Ну есть у нас асинхронность, есть нормальный LINQ, скоро и у вас появится.
08/08/22 Пнд 13:23:43 2428000 176
>>2427998
БАХ
@
ТЫ ЧЕГО ТАК ВЗОРВАЛСЯ?
Аноним 08/08/22 Пнд 13:26:02 2428002 177
Аноним 08/08/22 Пнд 13:26:54 2428004 178
>>2428002
Оракл не осилил в синтаксический сахар?
08/08/22 Пнд 13:30:19 2428008 179
>>2427849
На петушарпе импорты вручную пишут?
Аноним 08/08/22 Пнд 13:31:48 2428011 180
>>2427998
Асинхронность и сейчас в жабе есть, правда на уровне CompletableFuture, но тем не менее.
А так, зачем нужны async и await, когда есть виртуальные треды и любой блокирующийся код можно превращать в неблокирующийся?
08/08/22 Пнд 13:33:51 2428019 181
>>2428011
>А так, зачем нужны async и await, когда есть виртуальные треды и любой блокирующийся код можно превращать в неблокирующийся?
РЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!!!!! НУ ТЫ НАПИШИ АСИНК, НАПИШИ))) НЕ МОЖЕШЬ)))))) ААХАХАХАХАХАХАХАХААХАХАХА))) ТУПАЯ РУСНДЖАВА))))))))))))) ЧТО ЗНАЧИТ ЗАЧЕМ???? ЛОЛ ВАТНИК)))) А Я МОГУ ПИСАТЬ ГОВНО))) ЭЭЭ БЛЯ ОТКУДА ДЕДЛОКИ(((((((((((((((((((((((((((((((((
Аноним 08/08/22 Пнд 13:35:55 2428022 182
>>2428008
>На петушарпе импорты вручную пишут?
Ты о чем? В любом языке пишут в одном или нескольких языках строки вида "import govnoname".
>>2428019
Мань, причем тут async/await и дедлоки? Ах да..в джаве же нет удобной абстракции в виде Task, откуда тебе знать их разницу?
08/08/22 Пнд 13:38:22 2428023 183
>>2428022
АХАХХААХААХ ТУПАЯ ДЖАВА))) НУ УТЕБЯ НЕТУ ГОВНА! ТОЛЬКО В ПЕТУШАРПЕ ЕСТЬ КАКАШЕЧКИ! ПЕТУШАРП - ТОП ПО КАКАШЕЧКАМ! КОПРОБРО, ПОДТВЕРДИ!
08/08/22 Пнд 13:39:05 2428026 184
>>2428023
ПОДТВЕРЖДАЮ, КОПРОБРО!
Аноним 08/08/22 Пнд 13:41:49 2428029 185
>>2428023
>>2428026

А ты бы разве не хотел чтобы было как в C#? Нет мыслей "эх, наверное в шарпике это полегче было бы.."
Аноним 08/08/22 Пнд 13:42:22 2428030 186
>>2428022
>причем тут async/await и дедлоки
Дедлоки вряд ли просто так возникнут, а вот data race уже более вероятна, и тут уже нужно синхронизироваться грамотно, иначе хуев за шиворот легко получить.

Вообще в чем прикол async/await? В том, что мы просто пишем await Govno() и говно неблокирующе где-то запускается под капотом на особом тредпуле?
08/08/22 Пнд 13:43:13 2428033 187
>>2428029
Один раз было. Когда из-за стирания типов пришлось методы с разными дженериками по разному называть.
Аноним 08/08/22 Пнд 13:44:04 2428036 188
>>2428033
Джава даже в дженерики не осилила? Пиздец...
08/08/22 Пнд 13:44:26 2428037 189
>>2428036
Петушарп даже в документацию не осилил?
08/08/22 Пнд 13:46:04 2428040 190
>>2428036
Петушарп даже в обратную совместимость не смог?
Аноним 08/08/22 Пнд 13:46:21 2428041 191
>>2428037
Какую документацию? Уже в какой раз вижу этот аргумент, но никак не пойму. У нас огромная книга msdn, что не так? На каждый чих-пук есть пример, который с недавнего времени можно еще и на самом мсдн запустить
Аноним 08/08/22 Пнд 13:46:39 2428042 192
Вообще, вот есть интересная задача. Есть N тредов, которые должны ждать сообщения от особого треда X. При этом все эти N тредов должны реально ждать, просто висеть и нихуя не делать. Как только они получают сообщение от Х каждому из них нужно вывести сообщение "STOP" и прекратить работу.

Как реализовать отправку сообщения от треда X таким образом, чтобы все N тредов не в бесконечном цикле крутились и жрали ресурсы ЦПУ, а просто были приостановлены планировщиком до тех пор, пока к ним сообщение не прилетит.
Так стоит учесть, что тред X может отправлять любые сообщения, но вывод стоп и прекращение работы нужно делать только в том случае, когда в тред прилетит конкретное сообщение, на которое были изначально подписаны N тредов.
Аноним 08/08/22 Пнд 13:47:08 2428043 193
>>2428040
>Петушарп даже в обратную совместимость не смог?
Смог вроде, при переносе с .net 5 на .net 6 нихуя не сломалось кроме 1 строки которая пофиксилась примерно за 15 секунд.
08/08/22 Пнд 13:50:21 2428046 194
>>2428041
А ты можешь просто писать код и просто по итогам написания кода тыкнуть на кнопку генерации доков в идее и просто открыть сайт уровня https://docs.oracle.com/javase/8/docs/api/java/lang/String.html ?

>>2428043
АХАХАХАХАХАХХАХАХАХАХАХАХАХАХАХАХАХАХАХАХААХАХАХАХА БЛЯТЬ ПЕТУШАРПЕР ГОРДИТСЯ ТЕМ, ЧТО У НЕГО ПРИ ПЕРЕЕЗДЕ НА НОВУЮ ВЕРСИЮ ВСЕГО ОДНА СТРОКА СЛОМАЛАСЬ???????????????????????????????????????????????????????
Аноним 08/08/22 Пнд 13:54:11 2428052 195
>>2428046
почему джависты всегда срут на дотнетчиков а дотнетчики просто пишут код?
Аноним 08/08/22 Пнд 13:54:59 2428054 196
>>2427992
>>2427974

>легче юзать await
Ты разницу между асихронностью и новым потоком осознаешь?

1. Если у тебя не хватает мощны, то ты хоть усрись с асихронностью, но у тебя будут лаги, потому что это все еще один поток.

2. Невозможность использовать async, если ты пишешь либу для стороннего приложения.
08/08/22 Пнд 13:55:09 2428055 197
>>2428043
>Смог вроде, при переносе с .net 5 на .net 6 нихуя не сломалось кроме 1 строки которая пофиксилась примерно за 15 секунд.
А теперь представь, что ты делаешь что-то больше калькулятора и у тебя есть куча скомпилированных .jar (или что у вас там, .cs?) файлов, каждый из которых от разных разрабов, и доступа к исходникам для фикса этой одной строки у тебя нет к половине этих .jar. Что будет делать? Будешь ждать, пока все 300 разработчиков выкатят перекомпил? Или скажешь "нинужна" и обойдёшься без половины жарок? Или останешься на старой версии дотнета, и будешь терять новые багфиксы и фиксы уязвимостей?
Аноним 08/08/22 Пнд 13:55:45 2428056 198
>>2427900
Какая же это ебанина, эти ваши MemoryMappedFile.
На пустом месте может пропасть файл.
08/08/22 Пнд 13:56:02 2428057 199
>>2428054
>2. Невозможность использовать async, если ты пишешь либу для стороннего приложения.
Что? В петушарпе есть проблемы при использовании внешних библиотек? Они работают не как твой собственный код?
Аноним 08/08/22 Пнд 13:57:42 2428060 200
>>2428054
>Если у тебя не хватает мощны, то ты хоть усрись с асихронностью, но у тебя будут лаги, потому что это все еще один поток.

Разве await не стартует задачу где-то в отдельном потоке на внутреннем тредпуле?
Аноним 08/08/22 Пнд 14:03:01 2428070 201
>>2427980
Для этого и существуют интерфейсы.

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

А если наоборот нужно узнать в какой карте произошло что либо, то делаются события.
Аноним 08/08/22 Пнд 14:04:10 2428071 202
>>2428042
Смотря как у тебя реализованы эти потоки.
Можно сделать TaskCompletionSource, дать N потокам его Task, чтобы они его await, потоку X дать сам сурс. Когда надо, в сурсе юзаешь SetResult, и евейт закончится. Но это одноразовая тема.
Можно поискать разные классы синхронизации. Я знаю Monitor и SemaphoreSlim, но они вроде не подходят. Семафор сработает, если ты знаешь, сколько у тебя поток N. Но их дохуя разных, если зайдёшь на msdn в описание одного из этих, рядом будут ещё другие. Или ещё как поищи, хз.
Аноним 08/08/22 Пнд 14:06:37 2428076 203
>>2428057
У меня был (есть) случай, когда нет контроля над сторонним приложением. Есть встроенный скриптовый язык, который может вызвать функцию нейм из условной библиотеки. Я не могу там установить await, поэтому приходилось работать через потоки, например для вызова окна, чтобы оно не фризило скрипт.
Аноним 08/08/22 Пнд 14:07:53 2428077 204
>>2428070
У меня есть класс Gambler(От него наследуются крупье и игрок) И у этого гэмблера есть свойство Hand которое является массивом карт.
И у меня есть класс-отрисовщик, который отрисовывает кол-во фишек, например, или вот руку(карты) чела. Не думаю, что мне нужен интерфейс ICard, у меня класс Card. Или я просто тебя не понял)
Аноним 08/08/22 Пнд 14:55:13 2428111 205
>>2428071
>чтобы они его await
Как эта штука под капотом работает? Там какой-то аналог wait/notify будет или бесконечные циклы aka spinlock?
Аноним 08/08/22 Пнд 14:56:35 2428113 206
2022-08-0814-55[...].png 48Кб, 1060x561
1060x561
>>2428077
В сообщении присутствует слово из спам листа.
Аноним 08/08/22 Пнд 14:57:06 2428114 207
Аноны, объясните плс одну вещь. Я попробовал посмотреть гайды на ютубе, но это только сильнее запутало. Есть стек, есть куча. В одном храняться значимые типы, во-втором ссылочные. Во-первых, нахуя это разделение нужно и на что это влияет при работе?
Так же не понял этого дроча со значимыми и ссылочными типами: допустим, есть у меня две переменные инт со значением 10. Получается, у меня в памяти существуют два независимых числа 10?
Если тип ссылочный, например, два стринга со значением "Hello". Это значит, что "Hello" существует только в одном экземпляре? А если я этот стринг решу запихнуть в метод аргументом и изменить его там? Я получу на выходе совершенно другую переменную? Или что?
Аноним 08/08/22 Пнд 15:03:47 2428119 208
Аноним 08/08/22 Пнд 15:10:23 2428128 209
>>2428113
Ну выглядит не очень что в классе Suits есть информация о том как его отрисовывать
Аноним 08/08/22 Пнд 15:18:50 2428138 210
>>2428114
>Во-первых, нахуя это разделение нужно и на что это влияет при работе
Ну смари, у тебя - недержание кала, твои обосранные труханы маман кидает в специальный стек где лежат только лишь твои обосранные трусы, потому что стирать всё, что лежит в куче, например носки сестры, штаны бати, с твоим говном - не рационально, ибо всё будет вонять. Однако, это не отменяет того факта, что обосранные трусы бати можно закинуть в твой стек.

>допустим, есть у меня две переменные инт со значением 10. Получается, у меня в памяти существуют два независимых числа 10
Да

>Если тип ссылочный, например, два стринга со значением "Hello". Это значит, что "Hello" существует только в одном экземпляре
Не обязательно.
string str1 = "Hello";
string str2 = "Hello";
object.ReferenceEquals(str1, str2) //false

Однако,
string str1 = "Hello";
string str2 = str1;
object.ReferenceEquals(str1, str2) //true

>А если я этот стринг решу запихнуть в метод аргументом и изменить его там
Смотря как передашь. С этим можешь сам потыкаться, там много моментов которые описывать лень
Аноним 08/08/22 Пнд 15:33:33 2428152 211
>>2428114
Тебе голову ломает ситуация со стрингами, а все потому что они, как это сейчас говорят, третьего гендера.

Стриг это по сути класс (ссылочный), который ведет себя как структура (значимый).
А все для твоего удобства, чтобы к примеру когда ты сравнивал две текстовых переменных, то сравнивались их значения, а не ссылки.
Иначе вот эти вот шутки никогда бы не были равны
string MyValue1 = "Hello"
string MyValue2 = "Hello"
Конечно же, все остальные классы сравниваются по ссылке, а не по своему содеражанию.

>А если я этот стринг решу запихнуть в метод аргументом и изменить его там?
В качестве аргумента передается ссылка (ты уже понял почему)

Стринг это полный набор исключений из всего обыденного.
Любая манипуляция со стрингами рождает новый экземпляр стринга.
Почему, да потому что стринг это массив определенной длины. А у тебя новые данные с бОльшим или меньшим размером.
Че делать тогда?
Вот есть у тебя стринг (A) и ты решил в него вписать конкатенацию двух слов "Hello"(B) + "World"(C), так вот будет создано две новых переменных, которые (B) и (C), плюс еще одна (D) как результат соединения первых двух.
Далее ссылка на твой оригинальный стринг (A) будет заменена на ссылку третьей переменной (D).
А что же будет с (A), (B) и (C)? Ну они будут тупо валяться, пока сборщик мусора их не удалит.

Поэтому не стоит в каких нибудь циклах с большими объемами данных вот так просто манипулировать стрингами. Застрет оперативу знатно.

НО тут у тебя возникнет вопросик. Если манипуляции рождают новый экземпляр стринга, то изменив стринг, переданный как аргумент в функции, снаружи этой функции не изменится. Ну вообще-то изменится, как будто менялось само содержание стринга.
Но это опять вот такой вот стринг. Если ты попытаешься переданный из нативной библиотеки стринг изменить, то ХУЙ она увидит изменения, перейдя по тому же адресу. Это только в C# у тебя будет некая иллюзия.
Аноним 08/08/22 Пнд 15:34:25 2428155 212
>>2428138
Если я правильно понял, то:
string str1 = "Hello";
string str2 = "Hello";
object.ReferenceEquals(str1, str2) //false

Мы создаем две ссылки и два значения, а третья строка проверяет, одинаковые ли ссылки и выдает фолс.
string str1 = "Hello";
string str2 = str1;
object.ReferenceEquals(str1, str2) //true

Здесь мы создаем одно значение и одну ссылку и str2 присваиваем ссылку str1, и поэтому третья строка выдает тру. Правильно же?

Алсо, я не понял этого объяснения с труханами. Разве если бы стринг был значимым типом и лежал бы в стеке, он как-то влиял бы на инты?
Аноним 08/08/22 Пнд 15:43:44 2428169 213
>>2428128
Слушай, а как по твоему устроен Image? В нем и хранится информация.
В нем есть информация о своих габаритах, о локальной позиции, и главное там есть массив пикселей в виде Bitmap.

Ты наверно боишься, что если у тебя будет тысячи карт, то это сожрет ресурсы.
Ну так у тебя же в Suits будет ссылка на этот массив. А сам массив либо хранится отдельно в каком-то твоем месте для ресурсов, либо если у тебя реально файл с изображением, то добавляешь его как стандартный ресурс.

0000000
0001000
0010100
0111110
0100010
0000000
Аноним 08/08/22 Пнд 16:04:33 2428195 214
Господа, вот есть у меня например класс Int, и в нём есть поле или свойство Number. Как сделать так, чтобы при вызове объекта типа Int возвращался Number, ведь Int это же обёртка, просто сейчас приходится делать:

a = new Int
a.Number ....
Аноним 08/08/22 Пнд 16:07:07 2428198 215
>>2428152
По объяснению показалось, что это жабатред
Аноним 08/08/22 Пнд 16:33:00 2428222 216
>>2428155
>Если я правильно понял
Да, правильно

>Алсо, я не понял этого объяснения с труханами. Разве если бы стринг был значимым типом и лежал бы в стеке, он как-то влиял бы на инты?
Стринг не может лежать в стеке, в стеке лежат только value-types. Смари, в C# есть value-types и reference-types. value-types могут храниться как в стеке, так и в куче, а reference-types могут храниться ТОЛЬКО в куче. Операцией boxing мы можем value type -> reference type, операцией unboxing мы можем reference type -> value type.

Если непонятно откуда взялся боксинг/анбоксинг, то объясняю. C# код компилируется в CIL (иногда называют MSIL или просто IL). Нужен чтобы любой язык в платформе .NET запустился в другом языке. Например VBA можно запустить в C# и наоборот поскольку они оба компилируются в CIL. Так вот как раз таки в этом CIL есть две инструкции: boxing и unboxing о которых я и рассказал.

Небольшой пример когда value-types лежат в куче - это массив чисел, например int[]

Пример boxing:
int a = 10;
object boxed = a;
int unboxed = (int)boxed;

В CIL это будет выглядеть вот так:

IL_0000: ldc.i4.s 10 //a = 10
IL_0002: box [System.Runtime]System.Int32 //boxed = a
IL_0007: unbox.any [System.Runtime]System.Int32 //unboxed = (int)boxed
Аноним 08/08/22 Пнд 16:34:23 2428224 217
>>2428195
вот этим
a = new Int
Ты не вызываешь, а создаешь новый экземпляр.

Если ты хочешь вносить какие-то стартовые значения при создании экземпляра, например свойству Number, то ищи что такое конcтруктор класса или структуры.
В итоге у тебя будет так: a = new Int(150)

Можно одно из свойств класса установить дефолтным, например так сделано в классе List, когда ты можешь писать так:
a = new Int()
a(20) = 150
вместо того, чтобы:
a = new Int()
a.Number(20) = 150
но нельзя реализовать это: a = 150, потому что "a" это всегда ссылка на твою "обертку".
Аноним 08/08/22 Пнд 16:35:28 2428227 218
>>2428195
Переопредели explicit и implicit операторы
Аноним 08/08/22 Пнд 16:39:44 2428232 219
>>2428227
Напиши пример, это как?
Т.е. анон может использовать
a = new Int
b = a

как если бы это было
a = new Int
b = a.Number


Так что ли? Не верю.
Аноним 08/08/22 Пнд 16:41:26 2428235 220
>>2428227
>>2428232
Забыл добавить почему это работает. Вообще операторы explicit и implicit - это просто приведение типов, но при перегрузке этих операторов неявно переопределяется assignment operator, который явно нельзя переопределить. Именно поэтому возможно сделать так:

public readonly struct MyNumber
{
private readonly int _number;

public MyNumber(int number) => _number = number;

public static implicit operator int(MyNumber number)
{
return number._number;
}
public static implicit operator MyNumber(int number)
{
return new MyNumber(number);
}
}

Ну и теперь создадим небольшую хуиту:

public MyNumber Pizdec(int a, int b) //ТУТ ВОЗВРАЩАЕМ MyNumber
{
return a + b;
}

int myNumberResult = Pizdec(5, 5); //А ТУТ Int32
Аноним 08/08/22 Пнд 16:45:32 2428239 221
Аноним 08/08/22 Пнд 16:46:46 2428241 222
image.png 81Кб, 733x604
733x604
Аноним 08/08/22 Пнд 16:51:43 2428245 223
изображение.png 30Кб, 652x114
652x114
Что я делаю не так?
Аноним 08/08/22 Пнд 16:51:48 2428246 224
Аноним 08/08/22 Пнд 16:52:32 2428248 225
изображение.png 35Кб, 653x167
653x167
Аноним 08/08/22 Пнд 16:53:14 2428250 226
>>2428248
У тебя _images = null, не объявил где-то.
Аноним 08/08/22 Пнд 16:53:19 2428251 227
>>2428245
После слов вызвано исключение, для тебя пустой неинформативный газ? Понимаю.
Аноним 08/08/22 Пнд 17:39:38 2428291 228
image.png 388Кб, 750x957
750x957
Аноны, читаю пикрил, очень нравиться. Но к сожалению, инглиша не хватает. Хочу узнать - есть ли она на русском? Стоит ли вообще искать?
Аноним 08/08/22 Пнд 17:50:06 2428303 229
Анончики... Как вы программируете на этих ваших Жабах и сишарпах? Я охуеваю когда надо продумать ООП архитектуру для приложения и получается кал говна. Как? Как?
Аноним 08/08/22 Пнд 17:55:40 2428309 230
>>2428303
Так а нахуя чето придумывать если уже всё придумано? Джун должен знать о паттернах и архитектурах. Миддл должен уметь их применять. Сеньёр должен знать, когда их применять, а когда нет.
Аноним 08/08/22 Пнд 17:58:15 2428312 231
>>2428309
Ну вот хочу я консольную игру сделать, например. Начинаю продумывать сущности и тд. а выходит хуйня какая-то говно тупа куча классов кала, интерфейсы хуйни и ещё всё куча зависимостей
Аноним 08/08/22 Пнд 18:12:31 2428325 232
>>2428312
Сейм щит. Все начинается логично и структурировано, пока не превращается с помойку, которая заставляет применять все больше помойных решений.

Ну видимо шутки про бесконечное переписывание кода взялись не с потолка. Недавно смотрел видео, где менеджер жалуется, что программист вместо написания условного калькулятора начинает придумывать новую механику перетягивания окон.
Аноним 08/08/22 Пнд 18:23:27 2428339 233
>>2428325
Так получается что даже самые сеньеристые сеньеры рано или поздно в помойку кодовую скатываются что же это за хуйня такая
Аноним 08/08/22 Пнд 18:36:48 2428352 234
>>2428339
Ну видимо поэтому и придумали солид принципы. Боль неизбежна, но зато с ней можно как-то справиться.
Аноним 08/08/22 Пнд 19:05:54 2428383 235
>>2428325
>что программист вместо написания условного калькулятора начинает придумывать новую механику перетягивания окон.
Обосрался
Аноним 08/08/22 Пнд 20:17:18 2428426 236
Есть нормальный способ обмена данными между приложениями? Все выглядит как ракетостроение с кучей говна или с требованием особых разрешений, сервисов, еще какой хуеты.

Пробовал MemoryMappedFile и это говно может потерять файл в любой момент.
1. Кто-то пишет, что сборщик мусора удалил (у меня экземпляр все еще активен, вряд ли).
2. Кто-то пишет, что сбой может произойти, если чтение произошло в момент записи. Более реалистичный вариант, действительно теряется файл при высокой частоте обращения.

Ну и как второе фиксить? Я для этого и собсна их и использую, что я не знаю че там и когда второе приложение мне отправило. В ЭТОМ СУТЬ! Я пытался использовать булевый флаг как идентификатор для чтения записи, но это только снижает вероятность, а не устраняет проблему.
Аноним 08/08/22 Пнд 20:19:46 2428428 237
>>2428426
> Есть нормальный способ обмена данными между приложениями?
СОКЕТЫ
Аноним 08/08/22 Пнд 20:20:33 2428431 238
>>2428426
>Есть нормальный способ обмена данными между приложениями?
Каналы
Сокеты
Аноним 08/08/22 Пнд 20:24:41 2428434 239
>>2428428
>>2428431
Соекты это разве не веб? Еще нехватало сервер поднимать или что-то вроде этого.
Аноним 08/08/22 Пнд 20:26:25 2428436 240
>>2428434
Ну у тебя будет очень простой TCP сервер на локалхосте, который будет принимать и отправлять нужные данные.
Аноним 08/08/22 Пнд 20:26:31 2428437 241
Аноним 08/08/22 Пнд 20:31:07 2428440 242
>>2428436
>>2428437
Лан, пошел гуглить. Говорят, что все API на этом основаны.
Аноним 08/08/22 Пнд 22:25:43 2428520 243
1.png 42Кб, 1500x840
1500x840
>>2428440
>>2428437
>>2428436
Посмотрел вот это
https://www.youtube.com/watch?v=QohqDyTjclw&t=222s

Короче причины по которым точно не Сокеты:
1. Нужно запускать хост от имени администратора (пользователь нахуй пошлет)
2. Импорт библиотек. Тоже нет. Дело в том, что мой проект — это плагин в виде библиотеки для стороннего приложения, а ублюдочный .NET ищет импортируемые либы по месту запуска exe, а не по месту запуска dll. Я не имею права скидывать что либо за пределы своего загона для плагинов. Решения этого вопроса я пока не нашел.

Именно из-за множества ограничений я принял решение, чтобы моя библиотека запускала еще одно приложение (уже мое), в котором можно использовать все что угодно (пикрил схема).
Аноним 08/08/22 Пнд 22:53:38 2428529 244
>>2427974
смысла нет использовать такой неудобный синтаксис. Есть унифицированный подход TPL и то, что бОльшей части задач хватает пула. А если даже и нужен выделенный поток, то даже там есть LongRunning
Так что такой старый подход нужен если хочется к ядрам поприбивать или Abort(но его вырезали, так что причин поубавилось)
Аноним 08/08/22 Пнд 23:09:35 2428537 245
>>2428520
хуй знает, вопрос не изучал, но когда делал свою модульную хуйню, мой длл подсасывал херню возле себя из своей папки.
Аноним 08/08/22 Пнд 23:13:21 2428540 246
>>2428537
Может exe, который запускал твой длл, находился в той же папке? В большинстве случаев так и происходит.

Или ты тоже плагины делал?
Аноним 08/08/22 Пнд 23:14:10 2428541 247
image 164Кб, 900x890
900x890
>>2428312
> игру сделать
Для игр идеально подходит Entity Component System (ECS). Игровой движок Unity3D как раз сейчас переходит на эту систему. Тот же Overwatch написан на ECS:
https://www.youtube.com/watch?v=zrIY0eIyqmI
Аноним 08/08/22 Пнд 23:16:34 2428543 248
>>2428520
>а ублюдочный .NET ищет импортируемые либы по месту запуска exe, а не по месту запуска dl
Для старого дотнета там вроде событие было нужно определить. Для нового AssemblyLoadContext
Аноним 08/08/22 Пнд 23:19:08 2428544 249
>>2428540
Я же написал, что из своей папки. Да, свои плагины делал.
Аноним 08/08/22 Пнд 23:22:02 2428547 250
Пишу простенький веб сервак. Хочу сделать возможность подтягивать к нему шарповый бэк. Вопрос - как это реализовать? Сейчас идея прокидывать ассембли бэка и уже из сервака его запускать но пока выходит какая-то хуйня. Норм вообще идея или посоветуйте что-нибудь получше?
Аноним 08/08/22 Пнд 23:25:13 2428550 251
>>2428543
не ну динамическая загрузка это не тот функционал какой есть через imports, когда тебе доступны все методы и посдказки и intellesence. Это больше похоже на импорт нативных библиотек.
Это поможет для критичных ситуаций, но это не то тэффект, когда ты просто в конфиге указываешь папку для подхвата библиотек.
Аноним 08/08/22 Пнд 23:29:29 2428554 252
>>2428550
не знаю о чем ты.
объявляешь контракты (интерфейсы) и пишешь себе со всеми подсказками и проектами.
А в рантайме будет загружена нужная реализация.
Именно так плагины и пишут (и по другому никак, ведь тут вам не питон чтобы можно было компилить код не зная типов, а динамик не для этих случаев)
Аноним 08/08/22 Пнд 23:37:56 2428557 253
>>2428554
Можно подробнее? Вот я загружаю либу
Assembly asm = Assembly.LoadFrom("Plugins/MyApp.dll");

И дальше я должен получить конкретный метод
MethodInfo? square = t.GetMethod("Square", BindingFlags.NonPublic | BindingFlags.Static);

Вот оно так и работает. Какие интерфейсы?
Аноним 08/08/22 Пнд 23:44:47 2428559 254
>>2428557
Да, так и работает. Дальше square.Invoke()
Аноним 08/08/22 Пнд 23:46:02 2428560 255
>>2428303
Ебош казуально dependency injection и катайся еблом по клаве
Аноним 08/08/22 Пнд 23:48:50 2428561 256
Стикер 255Кб, 512x512
512x512
>>2428559
Ну эта жи ниудобна. Проще dll юзать как мост, а всю логику выполнять в рядом лежащем exe (так, кстати, многие плагины для той приложухи и сделаны).
Мне только осталось найти годный метод обмена информацией.
Аноним 08/08/22 Пнд 23:54:15 2428563 257
>>2428561
Та ты заибал. Просто подключи свою хуйню к проекту как dll, References -> Add reference и не еби мозгу. Если проект на C++ - используй маршаллинг.
Аноним 08/08/22 Пнд 23:59:17 2428565 258
>>2428557
>И дальше я должен получить конкретный метод
А какова причина ей работать именно так?
У тебя либо полная динамика (то есть ты не можешь знать в рантайме типов, а значит и IDE нечего подсказывать - он тоже не может знать), либо ты типы знаешь, а значит никаких MethodInfo просто нет - работает обычный cast и все плюшки

Не изобретай велосипед. Делаешь интерфейсы с которыми и работаешь в IDE а в рантайме связываешь. Так все делают даже если плагины не пишут.

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

Лютый примитив примерно так
1 делаю интерфейс IPlugin
2 Реализую его в длл
3 гружу длл
4 ищу класс реализующий IPlugin
5 инстанцирую
6 вызываю его методы.

можно наплодить сколько угодно интерфейсов вида IFeature
можно сделать IPlugin.Run(context)
Свобода же. И при этом типизация.
Аноним 09/08/22 Втр 00:10:49 2428569 259
>>2428557
то есть никто вот такие MethodInfo не плодит
объявляются контракты, а дальше какой то механизм типа MEF/IoC/велосипед находит нужные реаизации и затыкает эти контракты в рантайме.

Можно все найденное в IoC пихать для унификации резолвинга, можно не пихать.
все способы верны

Вот, например, аспнеткор - там всякие OWIN
так он просто объявляет кучу фич, которые могут быть реализованы, а могут и нет
IFeatureCollection,
IHttpRequestFeature,
IHttpResponseFeature
IHttpRequestBodyDetectionFeature
...
их там много, то есть буквально каждый чих
и потом в нужном месте получать реализации через такой код

context.Features.Get<IHttpRequestFeature>()

где Features просто коллекция, которую при тестах можно заполнить заглушками, а в рантайме ее заполняет механизм работы с плагинами. (и даже там можно не рефлексировать, а что то типа IPatform.GetFeatures)
Аноним 09/08/22 Втр 00:23:49 2428578 260
>>2428563
Ты думаешь я не пробовал так? Только ищет он эту либу по пути exe основного приложения.
Все стандартные либы нормально импортируются, а вот все что требует референса — пишет, что файл не найден.

>А какова причина ей работать именно так?
Ну хз. Я когда через референсы подключаю управляемую библиотеку, то у меня как будто все содержимое библиотеки рядом лежит, вся иерархия, как будто это часть проекта.
Когда ты подключаешь нативную библиотеку, то ты точно должен знать название метода и какие аргументы принимает.

>Делаешь интерфейсы с которыми и работаешь в IDE а в рантайме связываешь. Так все делают даже если плагины не пишут.
Начиная с этого момента я совсем не понимаю о чем речь. Вероятно ты ожидаешь немного другое от того, что я называю плагином.
На самом деле есть некое приложение, у которого есть свой скриптовый язык
и там есть функция, способная вызвать метод из библиотеки, выглядит это так
[Function_Name, Library_Path, argument1_string, argument2_float, argument3_memoryMap]
Собсно и все возможности коммуникации с моим "плагином". Даже типы аругментов строго обозначены.

Далее в своей библиотеке у меня есть метод
public static float MyFuncton(string argument1, double argument2, intPtr argument3)
{
return 0
}

И да, эта библиотека мимикрирует под нативную, с экспортом функций.
Аноним 09/08/22 Втр 00:29:55 2428583 261
>>2428578
> нативную библиотеку
Ну если речь идет о нативных библиотеках, то можешь забыть все что я написал
Там да, есть проблема вида "не могу найти загрузить нативную часть", что бывает с некоторыми нюгет пакетами врапперами над нативом и я хз как это решается.
Аноним 09/08/22 Втр 00:44:36 2428599 262
>>2428583
У меня только функции экспортированы.
Обычно же, когда ты используешь управляемую библиотеку, то ты должен сначала обратиться к неймспейсу, классу, а потом к методу. А мне нужно было, чтобы функции уже были точками входа — как это работает при [DllImport("")]

Я не думаю, что это делает код в моей библиотеке неуправляемым, ну по крайней мере я наблюдал работу сборщика мусора.
Но проблемы есть с асинхронностью, с референсами библиотек.
Аноним 09/08/22 Втр 00:52:02 2428602 263
>>2428599
>когда ты используешь управляемую библиотеку
с управляемой библиотекой я могу загрузить ее явно откуда угодно. Или переопределить механизм резолва через AssemblyLoadContext

с нативными библиотеками можно использовать для загрузки длл
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.nativelibrary
но я его не пробовал
Аноним 09/08/22 Втр 02:12:48 2428640 264
>>2428599
вообще тебе нужно

[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);

если платформа позволяет
Аноним 09/08/22 Втр 08:10:55 2428680 265
В общем. Такая проблема. Почему на ARM Cortex-A7 с флеш-памятью 512МБ и 256МБ оперативки - так долго стартуют даже маленькие программулины?

Просто думали о том, чтобы использовать этот ваш кор для написания служебного приложения. Рулило бы там очередями задач, логи работы вело, собирало какие-то данные и писало бы в SQLite. Но так оно жрало все ресурсы. Решили - ну, хули, будем только небольшие программулины в духе юникса: запустили - оно в stdout результат дало мы его дальше на сях используем. И тут - проблема в том, что оно тупо долго стартует. Пока оно стартанет - такая же хуйня на си - уже завершит выполнение.

Как, блядь, быть? При учете, что сишника нормального - хуй найдешь, а шарповода - хуй научишь писать нормальный код на си.
Аноним 09/08/22 Втр 08:45:56 2428689 266
Аноны, в далеком 2013 году пару месяцев кодил в консольке, написал игру, рулетку и пару мелких хуевин, но формы не изучал, базы данных не затрагивал. Как думаете, имеет ли смысл в 33 года пробовать дальше изучать чтобы вкатиться? Сколько понадобиться времени если заниматься по 4-5 часов в день? Жалею что не вкатился тогда, но были причины, то проблемы со здоровьем, то смерть близких и прочее дерьмо
Аноним 09/08/22 Втр 08:50:10 2428690 267
>>2428689
>Сколько понадобиться времени если заниматься по 4-5 часов в день
Конечно смысл есть. Вкатишься за полгода.
Аноним 09/08/22 Втр 09:07:11 2428697 268
>>2428689
>Сколько понадобиться времени если заниматься по 4-5 часов в день?
Если самостоятельно, то от полутора до двух лет. Если с чьей-то помощью, то можно за год уложиться. Если мозги варят и ты дышишь темой, то можно за полгода все выучить, но это скорее всего не твой вариант.
Винформы, впф, мауи и прочий десктопный шлак сразу забудь - пустая трата времени. В геймдев, если раньше с ним дела не имел, тоже не суйся.

Изучай сам шарп (начиная с Core 3.1, ниже нет смысла).
Параллельно ООП с паттернами (на это сильно можно не налегать, главное понять, а остальное с опытом придет), структуры данных.
Далее учишь ASP.Net Core WebApi (только WenApi, всякие MVC и прочее нахуй) и остальное связанное с вебом (HTPP, REST и т.д.).
Далее (вернее параллельно с предыдущим пунктом) базы данных и ORM (Entity Framework Core, Dapper)
После этого учишь Html, CSS, чистый JS и какой-нибудь фреймворк на нем. Либо ангуляр, либо реакт (я бы посоветовал второе, но не настаиваю). Учишь на уровне, чтобы понимать особенности самого языка и чтобы если пришлось залезть во фронт просто понимать, что и как там крутится, чтобы можно было увязать с бэком. Ну или так, чтобы хотя бы мог простенький компонент накидать.

Это примерный путь бэкэндера, на данный момент с таким стеком реально с нуля устроиться в офис или на удаленку на з.п. 40...60К и где-то через полгода-год удвоить эту сумму. Через год-два это все так же будет актуально (с примечанием только, что нужно будет хорошо шарить в .Net6)
Все остальные пути в шарпе - хуета и потеря времени.
Аноним 09/08/22 Втр 09:33:24 2428703 269
>>2428680
Это такая жирнота, чтобы пнуть c#?
Аноним 09/08/22 Втр 09:36:00 2428704 270
>>2428703
Всё не придёшь в себя после вчерашнего набега жабоблядей/шарпоблядей в треды друг друга? Хорошо, что репорты работают, и шизиков потёрли.
Аноним 09/08/22 Втр 10:34:11 2428718 271
Почему булеан весит 4 байта — это даже выше, чем чар.
Есть что-то легче байта? Мне нужно вписать нолик и единичку.
Аноним 09/08/22 Втр 10:39:55 2428720 272
>>2428718
Это тебе кто такое сказал? bool весит 1 бит. Можешь загуглить или сам в консоли написать Console.WriteLine(sizeof(bool))
Аноним 09/08/22 Втр 10:40:05 2428721 273
>>2428718
Какая разница, всё равно alignment сожрёт сэкономленные байты.
Аноним 09/08/22 Втр 10:40:52 2428722 274
Аноним 09/08/22 Втр 10:43:40 2428725 275
Аноним 09/08/22 Втр 10:50:35 2428728 276
2022-08-0910-49[...].png 7Кб, 1649x39
1649x39
>>2428720
Да? В бейсике сайзе оф выдает 4.
А пикрил по c#
Аноним 09/08/22 Втр 10:51:30 2428729 277
Аноним 09/08/22 Втр 10:51:34 2428730 278
>>2428718
Легче байта для единичного значения не выйдет. У тебя цп адресует память побайтово. Если нужно хранить несколько булевых значений - гугли битовые векторы
Аноним 09/08/22 Втр 10:56:56 2428734 279
>>2428729
>киберфорум
Нашел блять кому верить. Оператор sizeof возвращает число байт, выделяемых средой CLR в управляемой памяти. В управляемой памяти будет 1 байт, а в не управляемой - 1 бит.

Когда у тебя появляется вопрос по кишкам CLR - иди на MSDN, а не на какие-либо другие форумы. Но на двач можешь, не зря же я разбирался в этом говне, надо хоть где-то знания применять эти
Аноним 09/08/22 Втр 10:57:32 2428735 280
>>2428697
>Винформы, впф, мауи и прочий десктопный шлак сразу забудь - пустая трата времени.
Исчх, WinForms до сих пор топ для Windows-only десктопа. В конторе юзаем паралелльно с вебом. Да и петы набросать можно. Недавно видел вакансию на 6к$, а зумеры всё никак не могут похоронить деда.
Аноним 09/08/22 Втр 10:58:05 2428736 281
>>2428734
>В управляемой памяти будет 1 байт, а в не управляемой - 1 бит.
sizeof возвращет для управляемой, Marshal.SizeOf для неуправляемой.
Аноним 09/08/22 Втр 10:59:36 2428737 282
>>2428703
Нет. Просто, внезапно, местные вузы выпускают людей, которые относительно нормально знают шарп-жаву-питон и совсем не знают плюсы/си. На заводе нужны программисты. Руководство не готово держать людей, пока они освоят плюсы на уровне нормально - нужно чтобы они что-то полезное делали. Плюс трубы горят - нужно много чего для железа писать.
Писать на шарпе - было бы очень удобно. Но пока что все изученные сценарии показывают, что чтобы оно нормально работало - нужно минимум гиг оперативки иметь и процессор помощнее. Но это ведет к удоражанию железа. А никто не будет покупать сами устройства, если они будут даже на 30% дороже, а тут оно будет раза в 2 дороже.

Вот я и хотел узнать. Может быть кто с подобным сталкивался и знает как можно было бы на вот таком, относительно слабеньком железе заставить если уж не летать, то хотя бы приемлемо стартовать программулины, чтобы пока с такой платформой живем - хотя бы какие-то мелкие программулины служебные можно было на шарпе писать, ну, допустим какую-то программку, которая бы опрашивала бы состояние датчиков устройства и отдавала в стандартный вывод и ее раз в 100ms бы уже программа на плюсах дергала. Или программулина бы которая бы сидела и в последовательный порт отдавала бы что-то полезное, чтобы можно было по rs232 почитать.
А пока выходит - что ну совсем-совсем на шарпе под что-то кроме серверов дорогущих, да десктопов - ничего и не попишешь.
Аноним 09/08/22 Втр 11:02:14 2428739 283
>>2428737
>А никто не будет покупать сами устройства, если они будут даже на 30% дороже, а тут оно будет раза в 2 дороже.
Пентиум дуал кор 2 гига 2 ядра - 3000 рублей в худшем случае, 2 гб ОЗУ - 1000 рублей.
Аноним 09/08/22 Втр 11:16:10 2428744 284
>>2428737
Чел, вот давай без инсинуаций про слабые компьютеры. Если ты хочешь шарп на микроконтроллерах использовать, то ты ебанутый. Если у вас компьютер на заводе на ARM Cortex-A7, то вы ебанутые.

Да и то, речь идет про стартовый запуск, а не про скорость работы в целом. Ебать привереды у вас там, подождать 30 секунд в падлу.
Аноним 09/08/22 Втр 11:46:09 2428762 285
>>2428739
Все устройство целиком стоит 2к рублей, няша. Это уже произведенное.

>>2428744
Не на микроконтроллерах. Это вполне себе сейчас компьютер. С линуксом, пусть и кастомным. По производительности - что-то в районе малинок первых поколений.
Про первый запуск идет речь, потому что в контексте long-running - шарповские приложения - нещадно жрут оперативу и хрен как с этим бороться. Изначально как раз идея была в том, чтобы core-приложение переписать на шарпы, но в таком случае - оно через пару дней работы при активной загрузке - просто уходило на флешку, а это уже пиздец как больно.
Соответственно, если для постоянной работы оно так себе - было решено посмотреть со стороны unix-вея, пусть быстро что-то делает полезное. Но тут - как раз внезапно долгий старт даже мелких приложений.
Аноним 09/08/22 Втр 13:51:17 2428817 286
Кто-нибудь работал с Azure Functions? Насколько кривая или нормальная вещь? Мне нужно для написания серверной логики игры (загрузка профиля, выдача наград и тому подобное).
Аноним 09/08/22 Втр 17:10:43 2429067 287
Подкиньте идей для пета. По языку в целом и кору в частности.
Аноним 09/08/22 Втр 17:52:06 2429098 288
>>2429067
Делай интересный проект какой-нибудь. Я уже заебался смотреть все эти интернет-магазины, канеш тема не должна меня ебать, должен ебать только лишь код, но это не отменяет, что смотреть интересный проект - интереснее.

Пример - сделай мини-аналог sharplab.io, юзай Mono.Reflection для получения IL кода. Наебаш там ООП всякого поверх кода который будет идти из услового TextBoxну или <area>, не имеет значения

Еще можешь сделать просто рофельный проект. Алсо советую купить домен какой-нибудь eblan-anon.dev и арендовать сервак, 3к в год будет выходить где-то, и развертывать туда свою парашу, покажешь еще и скиллуху по CI/CD, ваще цены тебе не будет тогда.
Аноним 09/08/22 Втр 18:06:11 2429111 289
Почему у меня анимации в wpf идут рывками при перетаскивании окна?
Аноним 09/08/22 Втр 18:44:08 2429131 290
Аноним 09/08/22 Втр 19:04:18 2429144 291
sdfsdf.mp4 1903Кб, 1136x584, 00:00:05
1136x584
>>2429111
Включи какой нибудь проигрыватель видео, запусти короткое видео, чтобы указатель на таймлайне двигался быстро, и попробуй в режиме воспроизведления видео пошевелить окном. Там таймлайн тоже зафризится или будет идти рывками.
Графика это вещь дорогая, и если не хватает мощны, то луше окно будет двигаттся стабильно, но внутри все тормозить, чем и то и другое. Это результат оптимизаций.
Еще любят всякие анимации и передвижения вешать на таймеры, которые сами по себе выдают нестабильную частоту.

Недавно тоже боролся с реалиями GUI. Видеорил, там два колорпикера и тут интересно смотреть за передвижением цветопробы за куросором. Вариант слева — это из программы CorelDraw, реализовано достаточно очевидно т.е. прямоугольничек движется за куросором при событии MouseDown, но шо мы видим? А у него фпс с гулькин хуй (еще и намеренно залочили).

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

Я к чему, даже в фотошопе могли бы заморочиться на специальной механикой, но они пошли на уловки и иллюзии. Они пытались любыми способами разгрузить перерисовку UI. А уж все стандартное от майков не годится для чего-то, что выходит за рамки блевотных презентаций. Поэтому делай свои анимации, свои перетаскиватели окон.

Вот шутки >>2428325 про
>программист вместо написания условного калькулятора начинает придумывать новую механику перетягивания окон.
как говорится, имеют долю правды.

Первым делом скажу, что обычный цикл в асинхронной функции работает куда быстрее и ровнее таймеров.
Ну или забей (но частично), потому что так везде и даже большие компании, как из моего видоса, собсно кладут болт.
Аноним 09/08/22 Втр 19:06:23 2429146 292
>>2429111
>>2429144
Хуёво быть вами, парни. А вот у нас на qt не так...
Аноним 09/08/22 Втр 19:09:08 2429154 293
>>2429144
все немного не так.

Дело тут совсем не в мощности компа.

Сделай окно с десятком бесконечных прогрессов.
открой немодально несколько таких окон - все будет плавно

Но если ты откроешь второе такое окно в другом UI потоке, то сразу заметишь что в первом окне начались фризы.
Даже на слабом компе типа core i9 + 1080ti
Аноним 09/08/22 Втр 19:16:02 2429157 294
>>2429146
В qml контент даже растягиваться не успевает вслед за окном, видно черную полосу, что уж про полноценные анимации говорить.
Аноним 09/08/22 Втр 19:19:09 2429161 295
>>2429157
Так qml та ещё хуета, все нормальные люди на виджетах пишут.
Аноним 09/08/22 Втр 19:23:16 2429165 296
>>2429161
Так а зачем сравнивать виджеты с впф? Виджеты аналог winforms, это говно не пригодно для современных приложений.
Аноним 09/08/22 Втр 19:26:51 2429170 297
Аноним 09/08/22 Втр 19:29:52 2429172 298
>>2429165
Современные приложения - это веб. И нет разницы, юзать qml, wtf или борланд, всё равно надо копаться в легаси.
Аноним 09/08/22 Втр 19:31:17 2429175 299
>>2429172
Плюсую, гуи мёртв. Веб - это быстро, красиво и главное мультиплатформенно.
Аноним 09/08/22 Втр 19:39:03 2429180 300
>>2429172
>>2429175
Сколь либо сложные приложения в вебе не сделать.
Аноним 09/08/22 Втр 19:41:14 2429181 301
>>2429180
Сколь либо сложные приложения в гуе не сделать.
Аноним 09/08/22 Втр 19:42:34 2429182 302
>>2429181
Любитель пердолиться с терминалом, ты?
Аноним 09/08/22 Втр 19:43:16 2429183 303
>>2429131
>Какая же дрисня под капотом у этого асинк-эвэйта
Двачую, можешь еще глянуть в че превращается yield и dynamic
Аноним 09/08/22 Втр 19:43:34 2429184 304
>>2429182
Нахуя, если есть удобный браузер?
Аноним 09/08/22 Втр 19:43:59 2429185 305
>>2429182
А разве есть что-то что работало бы быстрее терминала?
Аноним 09/08/22 Втр 19:46:13 2429188 306
>>2429185
Пока в терминале введёшь команду, в гуе уже десять кнопок нажмёшь.
Аноним 09/08/22 Втр 19:50:04 2429190 307
>>2429188
Долбоёб, я чуть со стула не упал. У тебя амп равняется 10 что ли?
Аноним 09/08/22 Втр 19:51:57 2429193 308
>>2429190
Гуй быстрее терминала.
Аноним 09/08/22 Втр 19:54:28 2429195 309
Аноним 09/08/22 Втр 19:55:22 2429197 310
Аноним 09/08/22 Втр 19:57:06 2429199 311
Почему в треде традиционно виндового языка, столько пердолек?
Аноним 09/08/22 Втр 20:00:33 2429202 312
>>2429199
Больше нечем гордиться.
Аноним 09/08/22 Втр 20:01:49 2429205 313
>>2429199
Иронично что традиционно виндовый язык имеет тулсет в винде хуже чем на линуксе
Аноним 09/08/22 Втр 20:07:34 2429210 314
>>2429205
На винде есть студия, винформы, а на линуксе нихуя.
Аноним 09/08/22 Втр 20:12:30 2429216 315
>>2429210
Я так и сказал - юзерам "традиционной" платформы кроме как говном на лице похвастать и нечем.
Аноним 09/08/22 Втр 20:14:16 2429220 316
>>2429205
Двачую, разработка под виндой это какой-то кромешный пиздец.
Если с WSL, то еще куда ни шло для мелких хуевин, а вот если без него, то это поминки...
После консоли в убунте виндовая кажется совсем уж убогим поделием.
Аноним 09/08/22 Втр 20:14:29 2429221 317
>>2429216
Ясно, прыщебляди неприятно.
Аноним 09/08/22 Втр 20:17:07 2429222 318
Аноним 09/08/22 Втр 20:18:51 2429223 319
Аноним 09/08/22 Втр 20:24:13 2429225 320
Аноним 09/08/22 Втр 21:35:00 2429275 321
>>2428440
У майков есть какая-то своя реализация именованных каналов посмотри в них, может поможет.
Аноним 09/08/22 Втр 23:34:04 2429340 322
>>2429275
Да, вот прям щас это смотрю.
Сначала нашел анонимные каналы, потом перешел на именованные.
В целом, это как мемори маппинг, только без гемора.

Только там какая-то магия на этапе чтения, непонятная для меня.
Все работает, просто я это не могу осознать шо там происходит.
Что-то, что запускается из середины кода без эвейтов и событий, как будто GoTo какое-то.
Завтра разберусь и напишу.
Аноним 10/08/22 Срд 03:50:49 2429418 323
Кто там хотел видеть ImlicitUsings
вот и завезли.
Аноним 10/08/22 Срд 11:55:04 2429574 324
Я правильно понимаю, что для создания приложения, вписывающегося в дизайн современной винды, мне придётся использовать левые либы, сами майки не предоставили нужные шаблоны?
https://github.com/Kinnara/ModernWpf
Аноним 10/08/22 Срд 12:03:24 2429578 325
>>2429574
Майки рассчитывают, что для новых версий винды ты будешь использовать UWP MAUI
Аноним 10/08/22 Срд 15:27:07 2429720 326
Стикер 447Кб, 230x150
230x150
>>2429340
Короче НИХУЯ непонятно че там происходит.

Ну допустим я установил соединение с сервера с клиентом.
Вот я посылаю клиенту 3 сообщения
BinaryWriter bw = new BinaryWriter(pipeServer);
bw.Write("Иванов");
bw.Write("Иван");
bw.Write("30");


Далее клиент пытается считать данные
BinaryReader br = new BinaryReader(pipeClient);
temp = br.ReadString();
temp = br.ReadString();
temp = br.ReadString();


Что происходит? На самом деле данные записываются в массив в примерно таком порядке: "ИвановИван30", а ридер передвигается по байтам, зная размер символа и длину сообщения.
При каждом ReadString() "каретка" сдвигается, пока не упрется в конец и не возникнет исключение о конце потока.

Так вот у меня ВОПРОС. Правильно я понимаю, что если я снова впишу
bw.Write("Петров");
bw.Write("Петр");
bw.Write("25");
То у меня будет уже "ИвановИван30ПетровПетр25" и так будет расширяться до конца страницы, потом далее и далее пожирая оперативу? Эти данные не очищаются?
Аноним 10/08/22 Срд 15:37:44 2429725 327
>>2429720
Так вот. Если я не хочу, чтобы это говно разросталось, я просто прекращаю существование экземпляра BinaryWriter. Например окутываю его в Using.

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

Я не могу сдвинуть каретку, я не могу узнать длин, потому что
BinaryWriter.BaseStream.Position
BinaryWriter.BaseStream.Length

недоступны.
Аноним 10/08/22 Срд 15:42:11 2429727 328
>>2429720
с чего вдруг каналам вести себя не так же, как ведут себя обычные сетевые соединения. Точно так же ведут.
Аноним 10/08/22 Срд 15:47:37 2429729 329
>>2429727
Я с сетью никогда не связывался. Я не знаю как с этим поступать.
Аноним 10/08/22 Срд 16:29:23 2429770 330
>>2429729
ну там много тумана, но образно - есть входные и выходные буферы. Запись заполняет, чтение очищает.

Вопрос в том, что будет если пишем и пишем, но не читаем. Тут система попробует расширить буферы (и заблокирует Write на это время). Ну а если исчерпается пул буферов - видимо Write просто замрет.

Я не очень понял использует ли он просто буфер для всего или для каждого запроса берет из пула (а-ля ArrayPool.Shared.Rent) но исходя из рекомендации, что размер буфера должен быть достаточно малым чтобы не исчерпывать пул буферов, но достаточно большим чтобы поместился запрос - видимо второе

хотя я хз как помещаются очень большие данные тогда.
Аноним 10/08/22 Срд 16:33:21 2429773 331
Какой же уебищный язык этот си шарп, ява в дохуилиард раз лучше, пиздуйте писать игрушки на своем юнити, хули вы в интерпрайзе забыли?
Аноним 10/08/22 Срд 16:34:26 2429774 332
>>2429773
Конкретно что ты не осилил сказать можешь?
Аноним 10/08/22 Срд 16:52:07 2429785 333
>>2429729
>Я с сетью никогда не связывался
Ты делаешь запрос на сервер. Сервер должен послать тебе данные в сокет. Он может буферизировать данные перед отправкой.

Так вот на клиенте свой буфер - он заполняется данными из сокета и как только заполнился, то сокет лочится пока клиент не заберет данные из буфера. А сервер в это время ждет пока сокет станет снова доступным для записи.

Этакий блокирующий back pressure. На этом основана ддос атака "медленное чтение", когда открывают коннект и мееееееедлееееено читают, а сервер вынужден держать коннект и связанную с ним память все это время.

Так работают все - Stream, Pipelines, Channel, сеть, пайпы.
Разница есть в подходах работы с памятью - запись может быть заблокирована при заполнении буфера (Stream), а может быть попытка увеличения буфера (MemoryStream), а может смело жрать всю память (Channel.CreateUnbounded) или же иметь лимит (Channel.CreateBounded), который заблокирует запись (back pressure) до освобождения места.

Да и вместо расширяемого через удвоение буфера (который может расширить до безумного размера один большой кусок данных, а потом он зря такой и будет висеть) могут использоваться мелкие буферы, с которыми работа идет как с "одним большим куском" (Pipelines)
Аноним 10/08/22 Срд 16:56:57 2429790 334
Аноним 11/08/22 Чтв 09:48:53 2430279 335
>>2429790
Ну вот про буферы непонятно. Буфер заполняется при каждом write? Или сообщение не отправится, пока я не заполню буфер врайтами?
Аноним 11/08/22 Чтв 10:10:29 2430289 336
image.png 35Кб, 609x225
609x225
Джуны ебаные, быстро все сюда. Что выведится в последней строке?
Аноним 11/08/22 Чтв 10:18:26 2430292 337
Аноним 11/08/22 Чтв 10:37:42 2430301 338
>>2430292
Джун, отвечай, что выведется?
Аноним 11/08/22 Чтв 10:49:04 2430309 339
>>2430289
Вопрос с подъебом. Зависит от архитектуры на которой ты это будешь запускать.
Аноним 11/08/22 Чтв 11:04:48 2430314 340
>>2430309
Значит, шарп как кресты, а не как жаба?
Аноним 11/08/22 Чтв 11:05:42 2430316 341
>>2430309
Но ведь дотнет рекламировался как архитектурно-абстрактная управляемая платформа. Как же так-то?
Аноним 11/08/22 Чтв 11:23:02 2430330 342
Аноним 11/08/22 Чтв 11:59:53 2430347 343
>>2430314
>>2430316
Дебилы, спок. На чем бы вы не писали процессор интерпретирует отрицательные числа иначе нежели положительные. Если просто запустить -0 == 0, то будет true, вне зависимости от архитектуры, я не углублялся как это реализовано в .NET, но вероятно CLR руками интерпретирует -0 как 0.
Аноним 11/08/22 Чтв 12:10:22 2430360 344
>>2430347
> я не углублялся как это реализовано в .NET
Оно и видно.
Аноним 11/08/22 Чтв 12:15:02 2430366 345
>>2430347
Для инта что -0 что +0 в битах одинаковы, для дабла уже нет.
Аноним 11/08/22 Чтв 12:19:21 2430373 346
>>2430360
Разработчик платформы, ты?

>>2430366
Да, это знаю. Высрал хуйню какую-то.
Аноним 11/08/22 Чтв 13:41:09 2430456 347
>>2430316
Если оставаться в пределах абстракций, то да. Если начинать лезть в биты-байтики и ансейф, то уже не очень.
Все по канону: «C# was built to give the developer a gun but leave the safety turned on».
Аноним 11/08/22 Чтв 13:45:58 2430460 348
Че за даппер, че за ефкор? А где божественные хибернейт и спринг? Вы че рил на кале пишете?
Аноним 11/08/22 Чтв 14:09:40 2430482 349
>>2430453
>>2430460
Да не трясись ты, говно.

>Че за даппер, че за ефкор
Ну первая позволяет быстро + некрасиво SQL синтаксис обращаться к БД, вторая позволяет красиво + не так быстро LINQ, IQueryable, но всё равно достаточно быстро.

>хибернейт и спринг
EFCore, спринг был спизжен с ASP.NET.
Аноним 11/08/22 Чтв 14:10:37 2430484 350
Как отменить функцию, например Sleep, если она выполняется дольше положенного времени?
Аноним 11/08/22 Чтв 14:15:25 2430488 351
>>2430484
>Sleep
Не используй. Есть асинхронный Wait(). Как отменить? Просто. Буквально недавно в .NET 6 добавили метод для Task-ов, называется WaitAsync(), где мы можем передать время, через которое выполнение задачи нас не интересует. Через заданный промежуток времени, ожидание результата выполнения задачи будет прекращено, а также будет сгенерировано исключение TimeoutException

Wait и WaitAsync - разные по назначению, хоть и схожи по названию. https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.waitasync?view=net-6.0
Аноним 11/08/22 Чтв 14:28:27 2430499 352
>>2430484
Ещё есть CancellationToken. Если твоя функция принимает такой, можешь сделать свой сурс токена, и отменить его через время. Только учти, что сурс нужно диспоузить.
Аноним 11/08/22 Чтв 14:34:20 2430507 353
>>2430488
>недавно в .NET 6
А в netFramework?

>Sleep
>Не используй.
Дело не конкретно в этой функции. Есть другая, например у сервера WaitForConnection. А что если подключения никогда не случится?

При чем на стороне клиента есть асихронная функция, а на стороне сервера нет. Я понимаю, что к серверу вообще могут не подключиться и это норм, но я все же ожидаю, что клиент подключится в течение N времени, иначе у него проблемы.
Аноним 11/08/22 Чтв 14:35:57 2430510 354
>>2430507
>А в netFramework?
Обосрался. Ну тогда реализовывай руками через cancellationToken.
Аноним 11/08/22 Чтв 14:49:09 2430527 355
>>2430510
> Обосрался.
Большинство серьезных контор в эрефии на фреймворке сидит.
Аноним 11/08/22 Чтв 14:55:49 2430531 356
>>2430510
Ну вот, не робит
https://pastebin.com/v1w86eTJ

>Обосрался.
По техническим причинам не могу, ILDASM и ILASM не работают с core. Или распаковать в IL можно, но нельзя упаковать, не помню.
Аноним 11/08/22 Чтв 15:09:27 2430545 357
>>2430531
Тэк. А где ты токен из сурса токена юзаешь то? Ыхых. Ну отменил ты сурс, токен то где проверяется? Если ты юзаешь функцию, которая его (токен) принимает, она этот токен в ходе своей работы проверяет. И ес чо выкидывает как раз таки ошибку. Ты никуда токен не положил. Так что ты сам и должен проверять. Вообще, у тебя сурс доступен в Sleep, но было бы логично, чтобы Sleep принимал Токен (не сам сурс), и в цикле после Thread.Sleep его проверял. Ну или перед.
Аноним 11/08/22 Чтв 15:11:23 2430546 358
Анон, подскажи, будут ли у джуна спрашивать про dynamic, unsafe или про гоняния битов туда-сюда (всякие операторы <<, >>, bitwise операторы и так далее)? По моему имху это крылья, приваренные хуями к корове, потому что для таких извращений есть специальные языки, но рыночек может думать иначе.
Аноним 11/08/22 Чтв 15:13:59 2430549 359
>>2430546
Там же учить не так много. Думаешь, джун не осилит?
Аноним 11/08/22 Чтв 15:18:48 2430554 360
>>2430549
Ну вот я как будущий джун вообще нихуя в этих темах не понял. И еще больше не понял, нахуя они нужны. Автор учебника тоже не понял и честно об этом написал.
Аноним 11/08/22 Чтв 15:21:39 2430556 361
>>2430531
Ты не можешь запустить асинхронный метод в новом потоке, первый же await остановит поток. Потоки - они для синхронных задач, для асинхронных - Task. Выбирай либо async/await и отмена через токен, либо Thread'ы которые не поддерживают отмену, но есть вот это https://docs.microsoft.com/ru-ru/dotnet/standard/threading/canceling-threads-cooperatively

>>2430546
Про bitwise операторы будут, unsafe и dynamic могут спросить просто по приколу, знаешь ты что-нибудь или нет, но там не так много изучать, можешь глянуть вообще что делает dynamic в sharblab.io, а еще через unsafe ты можешь изменить readonly/const
Аноним 11/08/22 Чтв 16:18:50 2430594 362
>>2430554
>dynamic
Нужен когда ты работаешь с COM объектами, например ебучем экселем или когда ты подключаешь условную либу 1997 года написанную на Visual Basic 3.0

>unsafe
Ну тут ваще всё просто. Например StringBuilder, он внутри имеет просто char[] который во время Append "удлиняет" в памяти. Вот тут посмотри внимательно на неизвестные тебе методы и погугли что они делают. https://source.dot.net/#System.Private.CoreLib/StringBuilder.cs,3afde4d6a6a867f9,references

>bitwise operators
Тут тоже просто, они используются в алгоритмах зачастую и при оптимизации и так уже десять раз оптимизированного кода. Почему? Да потому что большинство процессоров для bitwise operator имеют свои инструкции которые выполняются на 0.000000001 наносек быстрее, чем условные 3 инструкции подряд которые дадут такой же результат, как и та одна инструкция. Пример - гугли что быстрее / или * там затронута тема будет >> для степени двойки.
Аноним 11/08/22 Чтв 16:22:45 2430602 363
Аноним 11/08/22 Чтв 17:22:48 2430665 364
>>2430279
Имхо сообщение отправляется сразу же, а буферизация используется для помещения сообщения в буфер перед отправкой, чтобы сразу вернуть тебе управление

То есть получится ситуация,что ты просто положил в буфер и думаешь оно уже отправлено, а это не так (если на той стороне малый буфер)
Аноним 11/08/22 Чтв 17:28:44 2430674 365
Продолжение истории про NamedPipes.

Пока тестировал на консольном приложении, не заметил, что если ридер выходит в конец потока, то он ждет, пока сервер не отправит новые данные.

Так вот в WPF у меня интерфейс к хренам фризится, пока не поступят новые данные. Хз, то ли консольное приложение работало иначе, но мне выдавало исключение (я его использовал как детектинг конца)

Пришлось ридер выносить в отдельный поток, но теперь если я закрою приложение и не закрою перед этим поток, то это говно заставляет мой кулер в компе вращаться со скоростью света.
Аноним 11/08/22 Чтв 17:30:02 2430676 366
>>2430482
>вторая позволяет красиво
ага, если работает. а если что то не так то приходится чесать тыковку чтобы понять что не так и как сделать так.

имхо правильнее Dapper + Linq для генерации SQL для этого даппера чтобы стринги не конкатенировать
Аноним 11/08/22 Чтв 17:33:18 2430681 367
>>2430674
ну и зачем тогда ты так накодил?
Аноним 11/08/22 Чтв 17:39:26 2430688 368
>>2430681
Как так? Я вообще ничего и не делал особо.
Аноним 11/08/22 Чтв 17:41:01 2430692 369
>>2430688
так, чтобы что то заставляло кулер вращаться
учитывая что чтение (а уж тем более ожидание) пайпа это I/O операция, то есть даже проц не занимает
Аноним 11/08/22 Чтв 17:43:56 2430695 370
>>2430545
>Вообще, у тебя сурс доступен в Sleep

Бля, да я для примера Слип показал. На самом деле этот слип не мой, я не могу туда влезть, понимаешь?
Я блять показываю стандартынй слип, мне пишут "Не используй слип", да как вам показать АБСТРАКТНО?

Вот есть функция WaitForConnection, которая ожидает коннекта клиента. Она запустилась и заморозила поток, но клиент так и не подключился. Как мне эту хуйню теперь отменить? Это не моя функция.
Аноним 11/08/22 Чтв 17:45:39 2430696 371
>>2430695
Если у тебя невнятная функция, которую ты не можешь изменить, и она сама не подразумевает отменяемость (через тот же токен), то тебе пизда.
Аноним 11/08/22 Чтв 17:45:59 2430697 372
>>2430695
у тебя же старый фреймворк
можешь абортнуть поток
Аноним 11/08/22 Чтв 17:53:07 2430711 373
>>2430696
В смысле, но люди же эту хуйню придумали? Как с ней работать?

>>2430697
Я уже обернул, и я только избавился от проблемы локинга.
А теперь ситуация: похожая функция ReadString ожидает сообщения от сервера. Я могу сервером послать условную команду выхода из цикла, но что если мой сервер крашнулся и не может послать команду?

Поток убить не могу, я могу туда просто послать команду отмены. А дальше что? Внутри поток меня залочен ожиданием ответа от сервера.
Аноним 11/08/22 Чтв 17:53:34 2430713 374
>>2430594
И вот это вот все надо знать джуну? Я думаю его даже близко не подпустят ко всем этим вещам, там на каждом шагу можно обосраться.
Аноним 11/08/22 Чтв 17:59:21 2430719 375
>>2430711
>Поток убить не могу
но можешь.
Аноним 11/08/22 Чтв 18:05:07 2430728 376
>>2430711
>Поток убить не могу, я могу туда просто послать команду отмены. А дальше что? Внутри поток меня залочен ожиданием ответа от сервера.
А дальше делаешь Join потоку
Аноним 11/08/22 Чтв 18:09:29 2430733 377
>>2430728
>А дальше делаешь Join потоку
>Блокирует вызывающий поток
И как это поможет?
Аноним 11/08/22 Чтв 18:13:26 2430743 378
Пиздос, только заметил, что перекат был. В итоге писал в прошлый тред...
Аноним 11/08/22 Чтв 18:16:21 2430747 379
>>2430733
Поставил Join(100) и вроде теперь не виснет в диспетчере задач, но я так и непонял что это. Уже поша какая-то магия.
Аноним 11/08/22 Чтв 18:16:51 2430749 380
image.png 72Кб, 587x646
587x646
Всем привет. У меня имеется интерфейс, который имеет в себе protected метод Move(). Я этот метод реализую в классе Car, после я наследую класс Car. Как мне вызвать protected метод IMove.Move() в классе наследнике? Можно ли вообще так делать? Пожалуйста, объясните.
Аноним 11/08/22 Чтв 18:17:13 2430751 381
image.png 21Кб, 442x255
442x255
И ещё один вопрос, почему я могу реализовать метод, который в интерфейсе protected через модификатор public?
Аноним 11/08/22 Чтв 18:24:58 2430758 382
>>2430747
какая магия?
ты запустил в потоке свой WaitForConnection и он повис
ну делаешь ты Join к этому потоку из основного потока, Join блокирует и основной поток но выходит по таймауту и основной поток оживает, а WaitForConnection так и остается жить в своем мире

никакой магии. смысла только нет
Аноним 11/08/22 Чтв 18:35:16 2430763 383
>>2430758
>а WaitForConnection так и остается жить в своем мире
В смысле поток не убивается?

Статус потока AbortRequested, клиент сообщает, что канал связи нарушен.
Аноним 11/08/22 Чтв 18:37:31 2430767 384
>>2430713
>И вот это вот все надо знать джуну
Нет, всё что тебе нужно знать: dynamic для совместимости, unsafe, bitwise для оптимизации. Но знания которые я привел выше удивят лида с которым ты будешь проходить собес, что какой-то гой без опыта знает такие детали.
Аноним 11/08/22 Чтв 18:40:55 2430770 385
>>2430749
>Можно ли так делать
Можно. Только чтобы вызвать этот метод тебе нужно будет сделать следующее:
IMove movable = new Car()
movable.Move()

Если хочешь иначе - пиши public void Move(), или оставь две реализации.
Аноним 11/08/22 Чтв 18:41:28 2430772 386
>>2430763
Join это метод синхронизации. Он ничего не делает с потоком к которому Join. Ну разве что сообщает о результате "закончился ли поток или таймаут вышел"
Аноним 11/08/22 Чтв 18:45:10 2430783 387
>>2430749
Ебать ты накодил.
Во первых, интерфейсы созданы для того, чтобы... определять интерфейс классов, то есть то, как с ними взаимодействуют. Поля и методы интерфейса и должны быть паблик. Если ты хочешь сделать протектед метод, то тебе скорее нужен абстрактный класс с абстрактным методом.

Во вторых. Ты в своём классе Car объявил метод void IMove.Move без модификатора доступа, а дефолтный модификатор доступа в шарпе private. Ты не можешь получить к нему доступ из наследников.

В третьих. Ебать, ты до переопределения методов не дошёл, а уже код пишешь? Побойся бога, назови их по разному, если они делают разное, или прочитай про наследование до конца.

В четвёртых. ебать, что у тебя с проперти CarName происходит.
Аноним 11/08/22 Чтв 18:47:23 2430785 388
>>2430770
да, так и думал, но до конца надеялся, что обойдётся без экземпляра класса. Странна штука, вроде в интерфейсе метод protected, а в классе он уже private....
Аноним 11/08/22 Чтв 18:50:49 2430789 389
>>2430783
я эту залупу чисто для примера высрал. Насчёт private...если я явно реализую интерфейс, то по дефолту, в классе, ставится модификатор private и его нельзя изменить...
Аноним 11/08/22 Чтв 18:51:18 2430791 390
image.png 17Кб, 576x194
576x194
Аноним 11/08/22 Чтв 18:52:37 2430794 391
>>2430791
А бля у тя интерфейс протектед, да и поху. Нахуя тебе сейчас вообще протектед методы и интерфейсах? Ты их предназначение понимаешь?
Аноним 11/08/22 Чтв 18:53:49 2430795 392
>>2430783
Про переопределение в курсе. Ещё раз, это чисто для примера. Я щас на интерфейсах сижу, вот и захотел понять, что тут за херь такая. Про абстрактный класс, да, буду иметь ввиду.
Аноним 11/08/22 Чтв 18:54:26 2430797 393
Аноним 11/08/22 Чтв 18:54:49 2430798 394
>>2430797
Ну вот и не используй.
Аноним 11/08/22 Чтв 18:55:08 2430800 395
Аноним 11/08/22 Чтв 18:56:56 2430802 396
Аноним 11/08/22 Чтв 18:58:14 2430805 397
>>2430783
>В четвёртых. ебать, что у тебя с проперти CarName происходит.
А что тут не так?
Аноним 11/08/22 Чтв 18:58:16 2430806 398
>>2430783
>Во первых, интерфейсы созданы для того, чтобы... определять интерфейс классов, то есть то, как с ними взаимодействуют.
Описал, шо хуй поймешь.

Представь, что Петя делает машину БМВ, а Коля делает машину Жигули. Потом Дима должен прикрутить ручки к дверям БМВ и Жигулям. Но вот беда, Петя сделал дверь в днище автомобиля, а Коля вообще посчитал, что двери не нужны.
И что делать Диме теперь? Он мог бы все машины запихнуть в массив и обращаться к функции Door, не взирая на марку автомобиля.

Это я к чему, интерфейс дает предварительной пизды Пете и Коле и говорит, шо ваши классы не будут работать пока вы не сделаете <вот эти вот> функции из списка, которые должны быть обязательно на выходе.
Аноним 11/08/22 Чтв 19:00:56 2430810 399
>>2430806
Это да, это понятно. Кстати, а часто используется реализация метода прямо в интерфейсе? Так сказать по дефолту
Аноним 11/08/22 Чтв 19:03:14 2430813 400
Аноним 11/08/22 Чтв 19:06:49 2430817 401
>>2430810
В интерфейсе ничего не реализуется. Ты пишешь, что понял, но ничего не понял.

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

Это в абстрактных классах можно.
Аноним 11/08/22 Чтв 19:07:25 2430818 402
>>2430817
>В интерфейсе ничего не реализуется
Да не трясись ты. Уже как 3 года можно
Аноним 11/08/22 Чтв 19:11:22 2430821 403
image.png 37Кб, 894x486
894x486
Аноним 11/08/22 Чтв 19:12:16 2430823 404
>>2430813
пизда, у меня картинки с кодом не грузит...
Аноним 11/08/22 Чтв 19:13:37 2430826 405
>>2430823
А воображение тебе на что?
зы: тоже не грузит
Аноним 11/08/22 Чтв 19:13:38 2430827 406
>>2430823
У меня тоже. Там в именах файлах ссылочку оставляют, тыкай и перекинет на гитхаб пасиб дядьпыня
Аноним 11/08/22 Чтв 19:15:40 2430830 407
Аноним 11/08/22 Чтв 19:20:29 2430835 408
Аноним 11/08/22 Чтв 19:21:35 2430838 409
>>2430835
Блять, да сказали же тебе - не трясись, хули ты устраиваешь? Да, шарп поддерживает, но кто так делает - дебилебаныбля
Аноним 11/08/22 Чтв 19:22:03 2430839 410
>>2430835
Це плохо или что? Я просто слышал, что это неоднозначная фича гавно короче, и что её лучше не использовать. Иначе появляется возможность множественного наследования как в цпп
Аноним 11/08/22 Чтв 19:24:00 2430842 411
>>2430839
Тащемта данный сабж завезли только лишь как подготовку к generic math ящитаю, ты можешь вот тут source.dot.net посмотреть кишочки интерфейсов INumber, IAddable и прочих, увидишь почему добавили static в интерфейсах. В реальности же данные фичи вообще нигде не используются как по мне. Даже привести пример не могу.
Аноним 11/08/22 Чтв 19:25:05 2430844 412
>>2430795
> Я щас на интерфейсах сижу, вот и захотел понять, что тут за херь такая.
Интерфейс - это контракт, по которому класс, реализующий интерфейс обещает иметь нужные методы.
Аноним 11/08/22 Чтв 19:26:52 2430847 413
>>2430842
Я хоть и зеленый, но когда щупал дженерики не понял одной штуки - как, блять, сделать мат операцию между двумя параметрами типа Т. Я сначала срр учил не доучил, там чисто в шаблонах можно с кайфом все складывать умножать и тд. А тут, насколько я понял, даже ещё окончательно не завезли данный сабж
Аноним 11/08/22 Чтв 19:27:32 2430848 414
>>2430847
>А тут, насколько я понял, даже ещё окончательно не завезли данный сабж
Да, но можно подрубить .net 7 preview и там можно будет это юзать
Аноним 11/08/22 Чтв 19:33:45 2430859 415
Аноним 11/08/22 Чтв 19:35:53 2430862 416
>>2430859
Не, я до этого ещё не дожил, я только на интерфейсах
Аноним 11/08/22 Чтв 19:36:23 2430865 417
>>2430859
Нихуя, ну-ка покажи как. Я чет даже представить не могу.
Аноним 11/08/22 Чтв 19:37:24 2430866 418
>>2430862
>Не, я до этого ещё не дожил
Анончик, а ты бы хотел в реале взять свою какашечку и начать её разгребать палочками там всякими, лопатками чтобы посмотреть что внутри?
Аноним 11/08/22 Чтв 19:38:58 2430869 419
>>2430866>>2430866
>Анончик, а ты бы хотел в реале взять свою какашечку и начать её разгребать палочками там всякими, лопатками чтобы посмотреть что внутри?
Типичный двач нет, не хочу, вонять будет
Аноним 11/08/22 Чтв 19:39:23 2430871 420
Что из себя представляет IList? Судя по названию это интерфейс, но интерфейс же не может хранить поля, а IList может. Ещё и наблюдаемая коллекция может в него преобразовываться а в обычный лист нет.
Аноним 11/08/22 Чтв 19:39:54 2430872 421
>>2430865
Что-то типа такого

if (T is int)
(return (int)a + (int)b)
Аноним 11/08/22 Чтв 19:41:11 2430873 422
>>2430869
>нет, не хочу, вонять будет
А если бы не воняло?
Аноним 11/08/22 Чтв 19:41:42 2430874 423
>>2430872
Это не рефлексия, это приведение типов. Гавно кароче наху.
Аноним 11/08/22 Чтв 19:42:16 2430875 424
>>2430871
Интерфейс для реализации возможностей стандартных коллекций: добавить, удалить, обратиться по индексу.
Аноним 11/08/22 Чтв 19:42:21 2430876 425
image.png 6Кб, 247x90
247x90
>>2430871
Статические поля может хранить.
Аноним 11/08/22 Чтв 19:42:25 2430877 426
>>2430874
Дебил ебаный, это что по твоему, если не рефлексия?
>T is int
Мамку твою на спене твоего бати ебал кароч
Аноним 11/08/22 Чтв 19:43:16 2430879 427
>>2430877
>рефлексия
Сучка крашеная, значение знаешь? Рефлексия никакого отношения к Generic types не имеет
Аноним 11/08/22 Чтв 19:43:50 2430880 428
>>2430873
не, не хотел бы. Пускай этим занимаются спецы, там лаборатории всякие по анализу испражнений, двачеры и тд
Аноним 11/08/22 Чтв 19:44:19 2430881 429
>>2430876
Только с восьмой версии. Но IList и до этого есть
Аноним 11/08/22 Чтв 19:44:54 2430882 430
изображение.png 5Кб, 752x64
752x64
Аноним 11/08/22 Чтв 19:45:27 2430883 431
>>2430880
Ну оно и хорошо, не будешь голову заморачивать сильно рефлексией.
Аноним 11/08/22 Чтв 19:47:07 2430885 432
Аноним 11/08/22 Чтв 19:47:40 2430886 433
image.png 21Кб, 759x247
759x247
>>2430871
>Ещё и наблюдаемая коллекция может в него преобразовываться а в обычный лист нет.
Аноним 11/08/22 Чтв 19:49:08 2430887 434
>>2430885
Нет, просто в 99% юзелес хуйня без которой можно обойтись, но с помощью рефлексии можно сделать почти всё, что душе угодно. Доступ к private членам, получение byte[] кода тела метода, например
Аноним 11/08/22 Чтв 19:50:36 2430891 435
>>2430887
звучит так, что если я её буду использовать, то я обязательно где-то проебусь/что-то сломаю
Аноним 11/08/22 Чтв 19:51:45 2430892 436
Рефлексия нужна только для удобной работы с базами данных.
Аноним 11/08/22 Чтв 19:51:52 2430893 437
Кстати, а метанит нормальный вариант для изучения? Я прост по нему учусь, вроде всё норм.
Аноним 11/08/22 Чтв 19:53:21 2430896 438
>>2430891
>то я обязательно где-то проебусь/что-то сломаю
Да, почти. В основном главный проеб - это в целом использование рефлексии, так же зачастую это нарушение инкапсуляции итд итп. Но если интересно будет начать копаться в этом кале - будешь пытаться её засунуть куда только можно.

>>2430892
Вот этого двачую. Еще рефлексия ахуенна для создания библиотек, например создание модульной архитектуры, а так же генерация методов js которые вызывают ajax запрос к методу api контроллера.
Аноним 11/08/22 Чтв 19:54:26 2430897 439
>>2430893
Сойдет для того чтобы ознакомиться с синтаксисом языка, но про глава про паттерны и архитектуры - полная хуйня. Тут лучше гугли и задавай вопросы на ruSO, мы тебе с пацанами ответим если на чем-то застрянешь
Аноним 11/08/22 Чтв 19:56:54 2430898 440
Аноним 11/08/22 Чтв 19:58:37 2430900 441
>>2430897
Спасибо, про паттерны я отдельную книженцию приготовил. Паттерны проектирования для C# и платформы .NET Core[2021] Джеффри
Аноним 11/08/22 Чтв 20:04:29 2430903 442
>>2430898
Я же тебе блять ответил, сука.
>>2430875
>>2430886

Олсо можешь чекнуть сам интерфейс на source.dot.net. Я обычно IList передаю в метод когда мне нужно обращаться по индексу + модифицировать коллекцию добавлять/удалять
Аноним 11/08/22 Чтв 21:26:27 2430949 443
Чуваки, подскажите плиз, как триал версию ридера резетнуть?
Аноним 11/08/22 Чтв 21:28:21 2430951 444
>>2430949
да крякни купи ты его
Аноним 11/08/22 Чтв 21:51:02 2430971 445
>>2430949
plati ru продают jetbrains all product pack за 600 рублей примерно, подписка на 3 месяца
Аноним 11/08/22 Чтв 21:52:52 2430973 446
Аноним 11/08/22 Чтв 21:56:32 2430976 447
>>2430973
Ну лично я наеба не вижу, лучше искать продавцов с большим количеством отзывов и продаж

https://plati.market/search/jetbrains

Еще на авито чекни, там вообще некоторые на год продают лицензии, но там хз, могут и наебать.

Других адекватных способов покупки лицензии для продуктов джетов не нашел, официально в РФ они больше не продают свои поделия
Аноним 11/08/22 Чтв 21:58:57 2430979 448
>>2430976
Очень подозрительно, слишком дёшево чёт.
Аноним 11/08/22 Чтв 22:03:09 2430981 449
>>2430979
мож это сами жб продают типа "все равно ведь не купят норм подписку, так продадим дешевле, лишь бы не кряки юзали"
Аноним 11/08/22 Чтв 22:25:14 2430997 450
Аноним 11/08/22 Чтв 22:44:30 2431011 451
>>2430997
жуть
так то можно и на 3.jetbra.in забежать
но лицензия это лицензия...наверное
Аноним 11/08/22 Чтв 22:47:33 2431016 452
>>2431011
Чем не пользовался - нигде через сервак не работало. А так раз в месяц на временную почту акк зарегал и радуешься жизни.
Аноним 11/08/22 Чтв 22:48:31 2431018 453
>>2431016
не знаю о чем ты. не знаю про какой сервак вообще речь.
это не сервер активации.
Аноним 11/08/22 Чтв 22:50:05 2431021 454
Аноним 11/08/22 Чтв 22:51:16 2431026 455
>>2431021
это урл, просто https:// скушалось. а там ткни на любую рабочую ссылку
Аноним 11/08/22 Чтв 22:52:58 2431031 456
>>2431026
Ну хз, халявные ключи у меня тоже быстро отваливались.
Аноним 11/08/22 Чтв 22:54:03 2431032 457
>>2431031
ну так то эти ключи тоже в блэклисте, что не мешает им работать.
Аноним 11/08/22 Чтв 22:56:30 2431035 458
>>2431032
Ну вот, каждый день с этими ключами ебаться ещё.
Аноним 11/08/22 Чтв 22:59:06 2431039 459
>>2431035
раз в год вообще то и то можно просто не сразу накатывать мажорное обновление (и жить на текущей мажорке хоть вечность), а подождать чуток
но тебе да - лучше каждый месяц мыло регать
Аноним 11/08/22 Чтв 23:02:55 2431042 460
всем привет, кто-то сталкивался в проде с cmsками на основе .net.framework
Аноним 11/08/22 Чтв 23:05:14 2431044 461
>>2431039
Потому что работает как часы уже несколько лет. А серваки и ключи вечно отваливаются.
Аноним 11/08/22 Чтв 23:05:45 2431045 462
че там с MAUI кста? уже откусило это чудесное творение львиную долю рынка?
Аноним 11/08/22 Чтв 23:08:23 2431049 463
>>2431044
согласен
лучше регать каждый месяц мыло, чистить профили - романтика
чем "разобрался как устроено и один раз настроил" - что уныло, фу такое
Аноним 11/08/22 Чтв 23:21:04 2431060 464
>>2431045
WPF/UWP не смогли убить винформы, а мауи так вообще никому не всрался.
Ага, чудесное творение, из которого намеренно выкинули поддержку линукса прошивки для роутеров.
Аноним 12/08/22 Птн 00:55:01 2431144 465
Аноним 12/08/22 Птн 02:39:14 2431209 466
Emgu CV может распознать движения на видео?
Мне нужно в 50 часах видео найти движение одного обьекта.
Аноним 12/08/22 Птн 08:28:22 2431256 467
>>2431045
Очередной недо-высер майков. Он его уже все кто могут поносят
Аноним 12/08/22 Птн 08:46:40 2431273 468
>>2431060
> WPF/UWP не смогли убить винформы
Что характерно, эти тулкиты копируют подход веб-дизайна, когда интерфейс слабо связан с кодом, который бихайнд. В вебе это логично, потому что интерфейс - это браузер, один из нескольких конкурирующих, и код веб-страницы физически не может быть связан сильно.

Что ещё забавнее, конкурирующие оверлейные кроссплатформенные тулкиты (такие как Eto.Forms или Avalonia) тянут тот же самый веб подход, со слабым связыванием через бинды.

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

Щас набигут миллионы мух и начнут убеждать меня, как я не понимаю профита слабого связывания.
Аноним 12/08/22 Птн 09:06:19 2431284 469
>>2431273
Но ты ведь реально не понимаешь. Такой подход упрощает разработку и разделение обязанностей. Все современные фреймворки основаны на данном подходе.
Аноним 12/08/22 Птн 09:10:07 2431286 470
>>2431273
>Что характерно, эти тулкиты копируют подход веб-дизайна
натягивание совы на глобус.
>тянут тот же самый веб подход, со слабым связыванием через бинды.
этот самый "веб подход" стал распространенным в вебе после выхода WPF, так что он никак не мог копировать

ну а то что паттерн MVVM вообще к вебу отношения не имеет...ну в общем ты понял.
Аноним 12/08/22 Птн 09:10:59 2431289 471
>>2431284>>2431286
Я пилю программы для себя сам, в соло, на галерах не гребу, в коллективе работать не умею и не желаю уметь. Поэтому мне данный подход нахуй не всрался. Однако, мне усиленно его пихает в литсо каждый второй туториал.
Аноним 12/08/22 Птн 09:15:29 2431293 472
>>2431289
а тебя кто то заставляет?

никто не запрещает писать в манере "спаггети-код мое все, я пилю программы для себя сам, в соло, на галерах не гребу, в коллективе работать не умею и не желаю уметь". Это можно ВЕЗДЕ и даже в WPF
Аноним 12/08/22 Птн 09:29:08 2431303 473
>>2431293
> Это можно ВЕЗДЕ и даже в WPF
Покажи. А я тебя обоссу по пунктам.
Аноним 12/08/22 Птн 09:31:33 2431306 474
>>2431293
Ебашить обработчики событий и внутри их хардкодить говно. Не использовать биндинги а напрямую привязывать к элементу указывая ему x:Name, ну всё как в винформах вобщем.

мимо
Аноним 12/08/22 Птн 09:32:02 2431308 475
>>2431303
что показать? что можно писать жопой?

или что можно без MVVM?
так это очевидно. в WPF можно писать как будто в винфорсмах пишешь. Биндинги там сверху добавлены - не хочешь, не юзай ни биндинги, ни шаблоны, нихера
Аноним 12/08/22 Птн 09:33:13 2431309 476
Аноним 12/08/22 Птн 09:40:38 2431316 477
>>2431306
> Ебашить обработчики событий и внутри их хардкодить говно.
Ну это ты кроме хардкода говна ничего не умеешь, за себя и пиши.
>>2431308
> что можно писать жопой?
Выше жопа уже показала. Даже в пост трясущимися лапками не попало.
> или что можно без MVVM?
Да, и чтобы мне не пришлось лесть в хамл-файл-разметки и какие-то х-нэйм там вручную прописывать. Хочу мышкой формошлёпить.
Аноним 12/08/22 Птн 09:43:11 2431318 478
>>2431316
>Ну это ты кроме хардкода говна ничего не умеешь, за себя и пиши.
Да не трясись ты бля. Если анонче по кайфу говнокодить ради своих проектов - его дело, всем похуй. Всё равно это говно никогда не выйдет в свет. Или у тебя травма детская на почве отказа из ООО Рога и Копыта из-за отсутствия знаний паттернов?
Аноним 12/08/22 Птн 09:44:50 2431319 479
>>2431318
> Или у тебя травма детская на почве отказа из ООО Рога и Копыта из-за отсутствия знаний паттернов?
Зыс.
Ладно, пойду поплачу в подушку. Всем пака!
Аноним 12/08/22 Птн 09:45:18 2431320 480
>>2431316
>Да, и чтобы мне не пришлось лесть в хамл-файл-разметки и какие-то х-нэйм там вручную прописывать. Хочу мышкой формошлёпить
Во-первых разметка и дизайнер в IDE это разные вещи.
А во-вторых (хоть это никакого отношения к в WPF не имеет) - формошлепство мышью было доступно в визуал студии с самого рождения WPF
Аноним 12/08/22 Птн 09:57:41 2431328 481
Поясните мне, зачем нужен пул DbContext в EF?
Ну из того, что это пул, понятно что он позволяет не создавать новые инстансы контекста, а переиспользовать.
Вот только при помещении в пул контекст закрывает коннект, то есть без пула коннектов все равно жить не может.
Аноним 12/08/22 Птн 11:39:41 2431395 482
Аноним 12/08/22 Птн 12:04:33 2431413 483
>>2424104
Все уже написано, просто натягивай на старый код новые карты и героев и на каждом шагу предлагай купить за донаты золотые монеты, на которые можно купить йоба мечь который всех порешает
Аноним 12/08/22 Птн 13:43:49 2431484 484
Я нашёл в интернете нужный мне код, как из него сделать программу? Правильный ли код, мне нужно чтобы при запуске программы ей выдавался фокус, в данном случае это notepad, будет ли всё работать?
https://pastebin.com/sQ8asCCn
Аноним 12/08/22 Птн 13:53:25 2431491 485
>>2431484
>Я нашёл в интернете нужный мне код, как из него сделать программу
Без задней мысли

>Правильный ли код
Хуй его знает, протести.
Аноним 12/08/22 Птн 13:54:11 2431492 486
Аноним 12/08/22 Птн 14:37:37 2431539 487
Аноним 12/08/22 Птн 17:28:32 2431793 488
>>2431395
в итоге польза от пула только если неявная инициализация из всяких конфигов или в самом контексте и поэтому дорого типа каждый раз делать.
А если опции в контекст передаешь снаружи, то инициализация контекста куда дешевле и польза пула не видна (о чем я и спросил)
Аноним 12/08/22 Птн 18:00:30 2431845 489
>>2431793
Я устал после работы, отвечу потом (хз когда), можешь вопрос на ruSO задать.
Аноним 12/08/22 Птн 18:11:11 2431859 490
>>2431845
На со куча вопросов на эту тему, мол зачем нужен пул
Оттуда же и узнал что контекст при возвращении в пул делает ресет который заодно и коннект закрывает. То есть нужен еще пул коннектов.
А если пул коннектов все равно нужен, то целесообразность пула контекстов перестает быть очевидной
Аноним 12/08/22 Птн 19:08:15 2431954 491
>>2431859
А в чем твой вопрос-то заключается нихуя не пойму
Аноним 12/08/22 Птн 19:46:12 2431990 492
>>2431954
В чем профит использования пула контекстов, если коннект он все равно не сохраняет, а инициализация контекста может быть вынесена из контекста, чтобы не делалась каждый раз в самом контексте - тем самым сделав создание контекста дешевым

собственно services.AddDbContext<> это и делает позволяя задать конфиг который будет передаваться готовый в конструктор этих контекстов лишая смысла постоянно выполнять OnConfiguring
Аноним 12/08/22 Птн 20:57:55 2432075 493
>>2431990
>а инициализация контекста может быть вынесена из контекста
Что?
Аноним 12/08/22 Птн 21:03:11 2432077 494
изображение.png 16Кб, 533x114
533x114
Помогите понять что здесь происходит. Что такое add, remove?
Аноним 12/08/22 Птн 21:09:35 2432088 495
Аноним 12/08/22 Птн 21:11:34 2432091 496
>>2432075
OnConfiguring можно не выполнять при каждом сосздании DbContext, а может быть выполнено единожды
Аноним 12/08/22 Птн 21:13:12 2432094 497
>>2432077
добавление и удаление делегата подписчика
аналогично как и в свойствах get и set
Аноним 12/08/22 Птн 21:22:38 2432103 498
>>2432094
>аналогично как и в свойствах get и set
Ну не совсем аналогично, скорее синтаксис одинаковый. А так да, просто добавляет/удаляет элементы в "коллекцию" вызовов

https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEUCuA7AHwAEAmARgFgAoIgZgAJT6Bhe6gb2vu/oAcoAlgDcAhhhiMySejCEw8GSSXoBBMBgDcXHqWXbunKj2Or19ANQBeegAoAlPUsA+SQE4bZO1qMnuaxVa2Ds5uNiRe+ib+Ftb2ji5EZO60ET6+kcaiUPQCeEIQANZiAhB4ADICAM6K1v4AdADiMBgAknkQYMWlFdX23r7cGTwAZtAwImAAFjZZOeIAtjl4S/lFGCXlVRh2Q76J7gILqQNsaVHqdW2rMH2RAL7Ud0A
Аноним 12/08/22 Птн 21:32:17 2432111 499
Аноним 12/08/22 Птн 21:36:06 2432116 500
По крестам есть хорошие книги, по шарпу нет. Почему так?
Аноним 12/08/22 Птн 21:37:07 2432117 501
>>2432116
Одноклассники тебе твои сказали?
Аноним 12/08/22 Птн 21:40:08 2432121 502
>>2432117
Я провел сравнительный анализ взяв за референс книги из шапок тредов посвященных этим языкам.
Аноним 12/08/22 Птн 21:40:54 2432123 503
>>2432121
А ты читал книги из шапки?
Аноним 12/08/22 Птн 21:41:45 2432126 504
>>2432111
читал
именно там написано в коментах с 14 лайками что коннект закрывается при возвращении в пул

мультредовость это не аргумент для использования пула

а " Pooling has some performance gains. " являются абстрактной фразой, которую я и спрашиваю А МОЖНО КОНКРЕТНЕЕ???
В каком месте создание DbContext является тяжелой операцией, что "только пул может помочь"?

Я вот вижу выполнение OnConfiguring при каждом создании экземпляра DbContext (дока так пишет). Но этот OnConfiguring можно выполнить единожды на все экземпляры, так что незачет.
При создании контекста инициализируются новосозданные разные там словарики, списки, но разве это такое тяжелое что ему пул нужен?
Аноним 12/08/22 Птн 22:26:40 2432158 505
>>2432126
Самое тяжкое в объяснении это то, что вы бля ищете скрытый смысл там, где его нет.
https://docs.microsoft.com/ru-ru/ef/core/performance/advanced-performance-topics?tabs=with-di%2Cwith-constant#dbcontext-pooling

https://docs.microsoft.com/ru-ru/ef/core/performance/advanced-performance-topics?tabs=with-di%2Cwith-constant#managing-state-in-pooled-contexts

Читай две статьи следующим образом: прочитал абзац - пошел полчаса думать над ним, как понял - приступаешь к следующему.
Аноним 12/08/22 Птн 22:44:59 2432170 506
>>2432158
спасибо анон, что не поленился спросить за меня на SO
хотя по факту все уперлось в RTFM )
Аноним 13/08/22 Суб 01:41:30 2432264 507
>>2423030 (OP)
Актуальна ли на данный момент книга CLR VIA C# ? Почитываю Албахари , он достаточно глубоко описывает синтаксис на современном стандарте , или Рихтер неизменная классика ?
Аноним 13/08/22 Суб 07:32:07 2432298 508
Аноним 13/08/22 Суб 10:43:15 2432344 509
Посоветуйте статей о mvvm на русском. Прочел троелсена и понял дай бог половину. Мозги закипают от всех этих команд, биндингов, соурсов.
Аноним 13/08/22 Суб 11:43:29 2432396 510
Аноним 13/08/22 Суб 12:08:45 2432409 511
image.png 92Кб, 1325x795
1325x795
image.png 111Кб, 1218x662
1218x662
Здравствуйте. Хочу через GETзапрос, чтобы получить XML с курсом валют с сайта ЦБ РФ. Есть два кода стула. В одном из вариантов у меня заместо русских слов высвечивается "??????", так же VS пишет, что вся эта залупа устаревшая. И есть второй код, который не возвращает контент со страницы, то есть Null. Кодировка на сайте windows-1251, судя по GET запросу. Посоветуйте, что-нибудь почитать по запросам, пожалуйста.
Сам сайт: www.cbr.ru/scripts/XML_daily.asp
Аноним 13/08/22 Суб 14:05:02 2432540 512
Как Sbyte конвертировать в Byte, а потом обратно в Sbyte?
Аноним 13/08/22 Суб 14:09:28 2432551 513
Аноним 13/08/22 Суб 14:12:04 2432558 514
>>2432409
>Кодировка на сайте windows-1251
Кто тебе сказал? Алсо ты передать кодировку можешь следующим образом:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) //регаешь провайдер который содержит дохуя кодировок
var encoding = Encoding.GetEncoding(1251); //"windows-1251"
и этот encoding можно в Stream передавать. Возможн будет работать. Ну или попробуй UTF8 передать, что вероятно как раз будет работать.
Аноним 13/08/22 Суб 16:24:33 2432681 515
>>2432396
> мы подключаем, подключаем и... ну в общем посмотрите
На этой ноте Шмачилин пошёл нахуй.
Аноним 13/08/22 Суб 16:38:55 2432694 516
Аноним 13/08/22 Суб 17:15:53 2432724 517
Аноним 13/08/22 Суб 17:35:40 2432734 518
Обновил студию, теперь тычут в меня maui. Как оно вообще, годнота?
Аноним 13/08/22 Суб 17:39:38 2432739 519
>>2432734
Потребление памяти моё почтение, настоящее унижение нищих бомжей без хотя бы 16 гигов оперативки.
Аноним 13/08/22 Суб 18:18:00 2432764 520
Зачем нужны абстрактные классы когда есть интерфейсы?
Аноним 13/08/22 Суб 19:05:58 2432832 521
>>2432764
Когда тебе нужно, чтобы классы-наследники могли наследовать поведение родительского класса и переопределять поведение, где нужно. Самый явный пример - иерархия UI-компонентов в WPF. Если делать ее чисто на интерфейсах, то придется либо поддерживать гору копипасты, либо городить переусложненную архитектуру.
Аноним 13/08/22 Суб 19:09:37 2432844 522
Есть сторонняя функция с кучей перегрузок, типа
BitConverter.GetBytes(int)
BitConverter.GetBytes(double)
BitConverter.GetBytes(boolean)
и так далее

Можно как-то мне обойтись кучей перегрузок и сделать что-то универсальное?
1. Серез Object, это привет упаковка\распаковка
2. Дженерики не знаю как запихнуть
3. If Else это вообще бред

Что еще есть?
Аноним 13/08/22 Суб 19:11:19 2432852 523
>>2432844
Можно. Подключаешь .NET Preview хуй знает какую и пишешь следующее:

public static SmthGovno GetBytes(INumber number)
{

}
Аноним 13/08/22 Суб 19:11:24 2432853 524
>>2432764
После того, как в интерфесы можно запихивать код, я даже не знаю зачем.
Аноним 13/08/22 Суб 19:18:39 2432870 525
>>2432852
Так?
public static SmthGovno GetBytes(INumber number)
{
BitConverter.GetBytes(number)
}
Аноним 14/08/22 Вск 08:22:11 2433184 526
>>2432724
Давай трястись вместе?
Аноним 14/08/22 Вск 08:59:08 2433198 527
>>2432870
Нельзя. Посмотри в исходниках шарпа почему source.dot.net
Аноним 14/08/22 Вск 09:20:03 2433203 528
image.png 86Кб, 1013x502
1013x502
image.png 84Кб, 1269x584
1269x584
>>2432558
this
>Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
Если кому надо, вот решение ещё exception для наглядности:
Аноним 14/08/22 Вск 09:21:28 2433206 529
>>2433203
Ещё сайт прикольный откопал, там всякие микро гайды на C#
zetcode.com/all/#csharp
Аноним 14/08/22 Вск 09:21:58 2433207 530
>>2433203
Ещё сайт прикольный откопал, там всякие микро гайды на C#
zetcode.com/all/#csharp
Аноним 14/08/22 Вск 09:22:45 2433208 531
Пздц...Моча...Написала же, что отправка отменена...
Аноним 14/08/22 Вск 09:24:39 2433210 532
>>2433203
Вечно забываю про этот идиотизм пока багреквест не прилетит
Аноним 14/08/22 Вск 09:45:19 2433224 533
>>2433203
Простите за глупый вопрос, а что это за консоль отладки? У меня выводит через окно интерпретации.
Аноним 14/08/22 Вск 09:55:10 2433230 534
image.png 37Кб, 1134x598
1134x598
>>2433224
Обычная дебаг консоль. Окно интерпретации - это что-то типо питоновской херни, где можно числа складвать там и тд
Аноним 14/08/22 Вск 10:12:28 2433246 535
>>2433230
Я ее всегда использовал как окно вывода данных. Как еще во всяких WPF выводить данные?

А где находится консоль отладки?
Аноним 14/08/22 Вск 10:24:53 2433265 536
>>2433246
Странно, она вообще по дефолту для консольных приложений стоит, типо нажимаешь на Debug(или F5) и она автоматом вызывается, так что хз.
Аноним 14/08/22 Вск 10:27:17 2433270 537
Аноним 14/08/22 Вск 10:34:55 2433277 538
>>2433265
А, ну консоль выводится, но обычная.
У тебя наверно стиль виндовс синюшный, выглядит как часть интерфейса студии.
Аноним 16/08/22 Втр 05:48:19 2435449 539
>>2424370
>Ты че ебанутый? Хранить несколько гигов говна в памяти?
Там по коду только такой https://github.com/username1565/KeyValue/blob/SQLite3Storage/KeyValue.cs#L72
огрызок в памяти хранится.
Остальное - на диске.

>>2424600
>А редис где гранит?
Двачую этого. Тоже интересно, каков лимит у редиса.

>>2424628
>Сука ты меня уже доебал
То залётный, так что он тебя ещё доебать не успел.
А если ты ко мне, то я тебя не то что ещё не доебал, я тебя ещё даже голым не видел.

>>2424370
>Юзай бля Redis и не еби мозги
>>2424652
>Просто используй редис, чел. Это топовое решение.
>>2424661
>золотой молоток (с)
Тогда, надо поднимать redis-сервер, а значит надо инклюдить его код, а он на Си.

>>2425507
>Юзай Ignite чел!
Ну хуй знает, код на Java, и ещё и сервер там...

Пока смотрю вот здесь: https://nugetmusthaves.com/Tag/key-value
нарыл LMDB
но оно чё-то не конпелируется, падлюка.

Ещё варианты?
Аноним 16/08/22 Втр 06:12:54 2435453 540
>>2435449
только тред давно переехал, так что тут никого
Повлияет ли уход Microsoft на C#.NET? Аноним 19/08/22 Птн 08:21:44 2439122 541
Не смог нагуглить, обращаюсь сюда. Начал изучать C#/.NET пару недель назад, сегодня увидел новость о том, что "Microsoft постепенно сокращает свой бизнес в России до тех пор, пока там почти ничего не останется" и стало как-то тревожно.
Означает ли это, что в скором времени .NET платформу использовать в России будет невозможно/никто не будет, и, соответственно, джуну найти работу с этим стэком будет нереально?
Если проще сформулировать, то повлияет ли полный уход Microsoft на C#/.NET разработчиков в России?
Как я понимаю, C#/.NET сейчас open-source и ограничения Microsoft могут повлиять разве что на недоступность Visual Studio, но хотелось бы почитать мнение шарящих людей.
Аноним 20/08/22 Суб 14:07:54 2440556 542
>>2428138
>string str1 = "Hello";
>string str2 = "Hello";
>object.ReferenceEquals(str1, str2) //false
Тут true будет интендация жи.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов