Это копия, сохраненная 15 января 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
- https://github.com/CSharpShapka/SharpHat/wiki
Прошлый
- https://2ch.hk/pr/res/1127830.html (М)
Не забывайте оформлять свой код
- https://ideone.com/
- https://pastebin.com/
Джва года хотел вкатиться в .нет, зная исключительно сам
фреймворк, но без технологий, типа ASP.NET core.
Мне не перезванивали.
Почитал пачку учебников по аспу и все захотелось выкинуть сразу же из-за несвязанности глав и отсутствия практических задач, растягивающихся на весь курс.
Пацаны, пацкажыте, хочу годный учебник по ASP, который будет реально интересно читать\выполнять, а не пытаться переварить эту кучу несвязного говна.
самый плотный C# дискорд вроде
Используют ли его, востребован?
Или лучше ковырять сторонние базы данных?
SQLiteподдерживается Code First EF?
Есть нугет на кодеферст cкулайт
<MediaElement x:Name="media" AutoPlay="True" Source="video/trailer-1.mp4" AreTransportControlsEnabled="True" />
далее, я хочу поменять значение source на своё, со своим местоположением, но при запуске проигрыватель не может проиграть файл, мол не видно его, либо неподдерживаемый формат, но ошибка кроется именно в пути.
C:\Users\hhash\Downloads\Blue Planet II_ Official Trailer.mp4 вставляют так и не видит, пытался через юри типо такого
myMediaElement.Source = new Uri(@"C:\Documents and Settings\User\Мои документы\Моя музыка\Mr.Credo\Чудная Долина.mp3")
тоже не работает, мож кто встречался?
У жавы много легаси говна. А с# не успел набрать.
Это enterprise-СУБД, да, она полностью востребована, но с точки зрения чувака, который изучает C#, без разницы, что ты будешь использовать в своих супер-лабораторках, т.к. ты просто заюзаешь коннектор к нужному типу СУБД, и для тебя будет неособо важно, что там за СУБД.
Угу, десять лет как помирают, С++ тоже через год загнется, а ещё США и Европа туда же)
попробуй что-то вроде:
file:///C:/Documents%20and%20Settings/User/Мои%20документы/Моя%20музыка/Mr.Credo/Чудная%20Долина.mp3
>> Documents and Settings
И поставь себе нормальную ос вместо xp.
Да у меня десятка, это я пример решения с какого-то сайта скинул.
Ща попробую. Это то-есть вместо пробелов поставить %20, а в начале ебануть file:///
Ща чек
Блин, всё равно не работает
Вот
media.xaml.cs:
public Player()
{
this.InitializeComponent();
media.Source = new Uri("file:///C:/blueplanet1.mp4", UriKind.Absolute);
//new Uri("Images/river.jpg", UriKind.Relative)
//"C:\\Program Files\\TestLoadFile\\Images\\MyImage.ico
}
media.xaml:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<!--<MediaElement x:Name="media" AutoPlay="True" Source="video/trailer-1.mp4" AreTransportControlsEnabled="True" />-->
<MediaElement x:Name="media" AutoPlay="True" Source="file:///C:/blueplanet1.mp4" AreTransportControlsEnabled="True" />
</Grid>
>Есть ли смысл разрабатывать веб-сайты на C
Смысла особого нет, потому что C# хорош для огромных сайтов, которые мало кому нужны. В основном он бесполезен.
Локальные или ограниченные сети со своим ПО
референси WindowsForms в проекте и рисуй в рантайме что пожелаешь
От struct разве можно наследовать?
ErrorCS0509'er': cannot derive from sealed type 'KeyValuePair<IWayOfLifeChange, int>'
Интерфейс тогда?
Ты вообще гуглил? Я вот уверен, что это хня на stackoverflow в несколькоих вариантах продуплена
Юзаю битмекс и бинанс для торговли, но только у гдакса нашел чтото похожее на риалтайм парсер. Хочу сделать автолимит ордеры по самой выгодной цене уже работает, но чтоб узнать цену надо слать лишний запрос, а это зарежка и минус один с рейтлимита . Впрочем простую алгоритмизацию для автоматического трейдинга тоже было бы неплохо попробовать.Fацаны сканят дату, если там подряд несколко зеленых свечек и растущие объемы, то бот сигналит что ПАМП. Бытует мнение что самый жир это арбитраж (перевод между биржами). На что сил хватит то и сделаю уже обосрался.
Но тогда ToString() не будет жи автоматически вызываться? только при явном указании ипользования extension.. А у меня коллекции всякие, хочу что б само перегруженный ToString() вызывало..
Тогда пили свой KeyValuePair
Вот никак не могу понять это. То есть, как добавлять, грубо говоря, недостающие цифры?
Компилируешь в эксешнигчек
@
в родной по почке работает
@
перетягиваешь экзешничег в другую попочку
@
наёбывается без объяснения причин при старте
пример двоичной
зочем тибе четверичная?
private static string ToBin(int value, int len)
{
return (len > 1 ? ToBin(value >> 1, len - 1) : null) + "01"[value & 1];
}
Сам дурак
Да хочу вывести все слова с длинной 3 и алфавитом в 4 буквы. Типа ААА, ААБ, ААВ и так далее. Вот и подумал, что переводом в четверичную систему будет единственным вариантом.
Спасибо за двоичную, теперь буду думать :3
.ToString("D4")
С циклами решение неплохое.
Но если ты учишься, то реши в общем виде, перевод числа в систему с другим основанием - простая задача.
https://habrahabr.ru/post/266163/
Если подводить итоги и говорить о Windows, то статья приходит примерно к похожим результатам: код С# медленнее С++ кода, примерно на 10-80%
Возможно ли оптимизация С# до уровня С++?
Так С# все равно переводится на язык ассемблера, нельзя было сделать что бы он также быстро работал как С++.
Специально замедлили, авторы плюсов по-братски попросили.
Он медленно работает, потому что выполняется на специальном эмуляторе. И соответственно компилируется не в машинный код, а в байткод для этого эмулятора.
Ну там же в комметах объяснили почему автор мудак и его тесты максимально неправильные.
>Ну там же в комметах объяснили почему автор мудак
Как-будто по кликбайт-заголовку было непонятно, что он мудак и к чему ведет.
VPS, не?
Ансейф код, там где есть просадки вроде упаковки.
Пешу на sharpdevelop за еду.
И еще, кто мыльную приблуду, где бы фотачке пересылались embedde inline, а не в атаче?
У меня показывает до 5 картинок, если больше, что значком, что битые. Но в атаче все 6, 7, 8
Могу показать код, если неинтересно
Вот я скреативил прогу из winforms. И она там где-то на одном из компов копротивляеца. Можно ли и как прикрутить ей web interface, чтобы через браузер по айпишнику? Понятно, что какой-то сервак там нужен
Если коротко - нет. Дешевле переписать на АСП. Возможно, получится подключить твою сборку на винформах и достать из нее бизнес логику, если у тебя там все нормально структурировано.
Спасибо за быстрый ответ.
Понимаю ли я правильно, что ASP кагбы другой интерфейс с сохранением всей функциональности как на пекарне. Чартики, кнопочки, но и серийные порты и прочие железки?
>Чартики, кнопочки, но и серийные порты и прочие железки?
Контекстные менюшки по правой мыши в чартике можно забыть?
Можно.
Интегрируешь ASP поддержку и свой интерфейс, модифицируешь прогу с минимальный веб-сервером слушать порт и коннектишься по ИП
Сырцы для присера - Archi Steam farm - консольная хуета с ASP-мордой
Спасибо за помощь! Буду покуривать.
У меня в совокупности 4-6 компов, где одна и та же прога снимает данные. Длиться эксперимент 3 месяца. И заглядывать надо иногда. Так вот я пока что коннектюсь через remote. А хотелось бы как в XXI веке
Хочестя, чтобы прога жила. Если с телеметрией, то и консольки бы хватило
С Sharp in Depth или статьи на MSDN:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
Затем просто гуглишь статьи по Xamarin
Меня только один вопрос интересует, disconnected model может работать только локально?
Ну вот есть у меня таблица SQL. Я её вывел через disconnected model в консоли, добавил туда ещё строк/таблиц, но при этом в самой базе ничего не поменялось. Как я понял, так и должно быть?
В общем, есть сервер, который постоянно принимает и передает данные клиентам. Вот он: https://pastebin.com/77QUG7Aj
Проблема там в том, что если клиенту все время отсылаются данные, а от него ничего не приходит, то накапливается некий стэк из колбэков, и во время дисконнекта клиента, все эти колбэки высвобождаются и выполняются один за другим. В моем коде сделано так, что при дисконекте выводится в консоль номер клиента в списке всех клиентов. Но вот что выходит.
Повторяю, я вообще не понимаю, как это устроено, но очень хочу разобраться, в гугле, повторяюсь, вообще нихуя по теме не найти.
Так ведь клиент контактится к серверу, и по получении данных соединение дропается
SOBYTIE
Так апи принимает только event. Как запиздячить тогда просто в строку, вот напрмер
string requestString = {"event":"subscribe","channel":"ticker","symbol":"tBTCUSD"};
Можно ли как-то указать чтоб все что в строке заебашилось в стринг и при этом не экранировать кавычки?
Значит настало время сменить язык.
Странно что в шапке нету в "посомтретЬ", годный вводный курс (и не только), просто и доходчево рассказывает https://www.youtube.com/channel/UCmdZlsCXz57nazOdp_o5wAg
К сожалению, заброшен :( но то что есть - прям уже оч хорошее
@event
void Register<TView>(string key, TView view) where TView : FrameworkElement
Чем он лучше, чем это:
Register(string key, FrameworkElement view)
?
Либо через собаку, либо заведи модель, и на пропертю повесь атрибут JsonProperty("event")
>через собаку
Спасибо братишки.
Paint?
ничем
Нахуй мне юнити для изображения в вин форме нескольких тысяч движущихся квадратиков?
Хочу заебашить генетический алгоритм и для наблюдения мне нужен хоть какой-то графен.
Ну ебошь канвас, хули, только я когда с ним работал мне приходилось перерисовывать элемент, т.к. менять их вроде как нельзя.
Как этого жуебу победить? Все предыдущие решил, а вот с этим sosnoole
Ищешь фейлы реализации параллелизма, подводишь треды к нужному месту и ВЫ УБИЛИ ДРАКОНА
+15
Проект под ксамарин, меня на него посадили, так то я андроидом занимаюсь
class Agilent : SerialPort
{
}
Я хочу вставить в этот класс ряд методов, которые посылают команды на порт, как это лучше сделать можно? Сначала думал просто через делегаты, например для комманды keylock, блокирующей панель прибора что-то типа
Action<string> Keylock = Write("Keylock true"+'\n')
Но не прокатывает. Еще подумал, что можно просто скопировать кучу раз метод Write, поменять название и тело, чтобы посылали конкретные команды без принятия аргументов, но, наверное, это мегаговнокод будет. А, и загвоздка в том, что методы не статичные, а для конкретных объектов класса Agilent.
Не совсем понял, чем
public Write (string message) {}
не устраивает? Какое хочешь сообщение, такое и шли?
Большая часть команд на языке команд SCPI, там древовидные команды, которые неудобно вводить и запоминать, поэтому самые важные и часто используемые я хочу в методы вынести. Для примера команда для считывания частоты с частотомера MEAS:FREQ?CHAN1, гораздо легче метод создать соответствующий
Да, как быпиздец.
Если хочешь, что бы Intellisense подсказывало - придется наверное таки писать.
Аналогично, можно записать в dictionary по типу:
понятное_сокращение:команда
Тогда:
public Write (string short_cmd) {}
будет просто обращаться к словарю и слать команду.
Точнее не совсем методы к кнопкам, тогда бы я действительно просто через Write(string) сделал бы, но в итоге программа впф будет
дай ссылку на гит, или хотябы название
питон, жс
Зачем lock?
Ты как все это дело делаешь? Старый трейдинг или Task, Async/await?
Вообще, как раз для тебя классический пример:
https://msdn.microsoft.com/en-us/library/hh191443(v=vs.120).aspx?f=255&MSPPError=-2147217396
>А вот ту я хуй знает, как синхронизировать то, прсото обернуть в lock когда основной поток делает запись в переменную?
Очередь с синхронизацией. Один пишет, другой читает. Можно две очереди, в одну пишет первый погток, из другой читает второй, когда очередь на чтение закончилась, очереди меняются местами.
Ёбни какой-нибудь потокобезопасный контейнер из system.concurrency. Одним засовывай, вторым извлекай.
Все что в рихтере написано + основы фреймворка с каким работать будешь - wpf + mvvm / aspnet + ef + tsql
Нужен какой-то сервис-воркер, который сможет с периодичностью и по требованию (очередь) выполнить рессурсоемкие таски.
Так вот, как это реализовать? Есть веб бек на коре с моделями, бизнессслоем и вот этим всем. Вин сервис? Я важе коровские класс либрари в нем смогу юзать?
Подскажите куда копать. плиз.
>Вин сервис? Я важе коровские класс либрари в нем смогу юзать?
А почему ты заранее решил что не сможешь?
Хм. Если смогу, то гуд.
Но все же как это организовать лучше всего?
Какие-то WCF рекомендуют, как я понял это просто срань шобы ивенты пробрасывать так?
Просто запилить винсервис, чтоб базу смотрел периодически и через базу таски подкидывать?
Хз, запиилить минимальный сервер что бы слушал локальный порт и на него подключаться сервисом и слушать запросы?
>RabbitMQ
Это решит проблему месежей.
Но где и как запускать таски вообще?
Пока смотрю на Hangfire и IHostedService
У меня Monodevelop тоже не запустился. Скачал sharpdevelop. Брат жив
Смотри второе. Из контроллера кидаешь таску в базу и сервис сидя в вечном лупе их оттуда достаёт. Это тебе позволит гарантировать что таска будет сделана даже если твой пул перезагрузить.
Hangfire вроде бы тоже это гарантирует, поднимает свою базу, все дела. Все-таки не стоит его юзать? Выглядит сладко.
Я его не использовал. Просто описал как вижу самое логичное решение твоей задачи. Если он так может, бери его. Но я бы написал сам, задачка же элементарная.
Упали продажи Visual Studio и скорей всего разрабов MonoDevelop "попросили" убрать свой продукт для винды.
А то, что студия бесплатная - это миф. Через месяц после установки её надо покупать.
> А то, что студия бесплатная - это миф. Через месяц после установки её надо покупать.
Юзай коммьюнити эдишн, дебик.
Можешь использовать. Юзаю в проде джва года, доки и примеры в порядке, API (почти) идеален, зависимость есть.
Прошел я всю эту фигню сегодня но нихуя не понял.
Выручайте
я бы советовал не менять специализацию
попробовать выбить побольше денежек
ну и вечером - в выходные не сидел бы за компом чтобы не сгореть окончательно
но ты конечно меня не послушаешь
Ну через 5 точно выйдет. Начальство просто наймет сеньора, а тебя максимум буду переучивать, это в лучшем случае. Нет никакой карьеры в геймдеве, идет только увлеченная молодежь, в надежде сделать доту2, но делают слоты и матч3.
>>47989
Навряд ли. Unity пока двигается семимильными шагами, и теснит UE4.
Из догонял - уродливое дитя Xenko да Godot (который ваще с 2001 вроде пилится, ну ты понел как скоро он будет актуален). CryEngine/LumberEngine из другой весовой категории и Source 2 мертв.
Можешь пилить Unity и потихоньку, в свободное время, изучать EU4 дабы если что сменить воюющие стороны.
Вероятность такого выстрела крайне мала, а жить на что-то нужно уже сейчас.
Дворник.
Слушком туп, дабы в реальный гейдев или погром. Для меня это увлечение. Ну, я в глубинке живу, мне 10к деревом прожить в месяц хватает. У вас там в МСК понятно все раз в 10 хуевее.
> а через 3 года выйдет какой-нибудь другой супер-модный движок и куча студентов
Скорее будет нейросеть делать игры.
>Ну, я в глубинке живу, мне 10к деревом прожить в месяц хватает. У вас там в МСК понятно все раз в 10 хуевее.
Лооол. Как хорошо извернул-то.
Что-то уровня "Родители живут со мной".
Ты просто читаешь первое слово "бесплатная", а дальше не читаешь. А там написано, что это пробная версия. Работает она 30 дней, а потом требует ввести ключ, который надо купить за деньги.
Не мск, Украина, кароч.
Под виндой у тебя .exe выполняется либо как консольное приложение, либо как оконное - это описывается одним байтом в PE заголовке (на самом деле там есть еще варианты, типо "приложение ядра" или "POSIX" - на это уже сильно реже).
Консольные приложения при запуске спавнят терминальный хост и подрубаются к его потокам ввода/вывода, оконные же качают очередь сообщений. Поэтому из консольного приложения создавать окна бесполезно - у них нет доступа к оконной подсистеме и сообщениям от клавиатуры/маши и прочего (GUI правда с извратами можно запилить, напрямую хуяря в буфер терминала, но это уже мало к шарпу относится. Из оконных приложений однако консоль открыть можно. К слову, оконное приложение - не обязательно с окнами как таковыми, это может быть и процесс службы.
Шел бы ты в джава тред обратно, у CLR интерпретатор был только в самых древнючих версиях Mono
Да, отображать изменения обратно в базу - это нужен клей к connected layer в виде DataAdapter, крайне редко видал ввиду многословности, обычно либо идут в глубь и напрямую с connected layer работают, либо наверх поднимаются и ковыряют orm
Тут написано "эмуляторы". И clr с jvm именно этими самым эмуляторами несуществующих машин и являются.
Все эмуляторы более-менее мощных соснулей (для 8 и 16 бит сейчас наоборот дрочут на точность эмуляции и сейчас там онли интерпретатор), тащемта, работают в JIT режиме и точно так же транслируют блоки кода в мащинный код таргет-архитектуры, но оверхед все равно присутсвует, и не малый (для эмуляции соснульной игры требуется комп в 10 раз мощнее чем соснуль, на которой игра работает. Так для эмуляции сраной PS2 с 300мгц требуется топовая пекарня на i7 чтобы поиграть в игорь 2005-2006 года).
С clr и jvm ситуация получше, потому что они, собственно, не реальное железо со своими багами, таймингами и косяками, которые нужно эмулировать, но все равно - являются слегка оверхеднутой прослойкой и не могут в Data-oriented design.
Ну и да, подрывают меня обмудки.
Записывайте:
Ассемблер - ЭТО КОМПИЛЯТОР языка ассемблера.
Язык ассемблера - СИМВОЛИЧЕСКАЯ АБСТРАКЦИЯ над машинным кодом конкретной платформы, причем для некоторых ассемблеров в языке вообще куча макро-фич есть вроде структур, классов и заменой семейства инструкций одной и вычисление конкретной инструкции по контексту использования.
То что выполняет процессор - называется МАШИННЫЙ КОД и именно на него и компиляцию в него все на самом деле дрочат.
И именно его запрещает на своих поделиях компилировать или генерить в рантайме яблоко.
Мне надо из другого класса написать что-то в ебучий текст бокс. Но когда я пытаюсь это сделать мне пишут "хуе мое для нестатичного говна требуется ссылка на объект". В сети пишут типа нужно создать объект. Окай. Создаю объект, как повелел гугл, ошибка пропадает, но нихуя не происходит. Где я проебался?
Собственно сам код
public static void test()
{
Form1 form = new Form1();
form.log_txb.AppendText("11111");
}
> Посоны, помогите нубу. Я нихуя не могу понять. У меня есть задача написать в текст бокс какую-нить парашу. Например "1111". Использую Виндоуз форм. Проблема в чем. По дефолуту все кнопочки хуепочки создаются приватными и не статичными.
Геттеры/сеттеры запили, хуле.
А подробнее можно? Чему конкретно запилить и как это сделать то? Типа log_txb.AppendTex гет сет задать чтоли?
Требуется в asp.net приложении сгенерировать документ Word. Чтобы человек зашел на сайт, ввел в форму свои данные и получил на выходе документ в котором будут эти данные.
Собственно я это сделал, у меня на компе все нормально работает. Сначала создаю шаблон .dot, в нем в нужных местах ставлю закладки с определенными именами. Затем с помощью Microsoft.Office.Interop.Word открываю этот шаблон и подставляю в места закладок нужные мне данные.
Проблема в том, что это не работает на хостинге. Выдает такую ошибку (пик). Насколько я понял, не работает потому что на хостинге не установлен Word. Очевидно установить его туда я не могу. Пока что я вижу только одно решение проблемы: запустить приложение на VDS, установив там Word. Мне оно кажется не совсем оптимальным (возможно я ошибаюсь).
Какие ещё есть решения этой проблемы? Может есть библиотека, позволяющая генерировать .doc-файл без установленного Word?
Пиздец, либа от Васяна Инкорпорейтед. Что у тебя за гугл вообще?
>>48493
https://www.microsoft.com/en-us/download/details.aspx?id=30425
https://www.codeproject.com/Tips/666751/Use-OpenXML-to-create-a-Word-document-from-a-docx
В каком смысле дружить?
введу то я строку, я хочу чтобы в зависимости от места вызова этого метода, он мне возвращал уже int или enum. Нереально получается такое сделать?
Можно сделать класс или struct, как обертку, который будет содержать в себе либо то, либо иное, но это неправильно.
Можно box'ить в object и потом unbox'ить, но и это не лучший метод.
Еще есть dynamic type.
пытался просто изменить возвращаемый тип, но тогда он не может сконвертировать строку с консоли(что и логично, я же не указал, что там будут числа). А как ограничения установить - не могу понять
Впф не особо популярен, судя по кол-ву вакансий, почитал про асп, поначалу казалось, что там на уровне впф сложность, потом обнаружил, что там js/ts надо знать, бутстрап, хттп протокол и еще дохуя всего
Плюс пока в фронте не особо вижу интереса, хочу бд пердолить
>Впф не особо популярен, судя по кол-ву вакансий
WPF долго еще в деле будет, ибо Windows Forms реально уже отпирают, а UWP - мертво-рожденный
Я думал что он где-то тут(нет).
https://github.com/dotnet/corefx/tree/master/src/System.Collections/src/System/Collections/Generic
https://github.com/dotnet/coreclr/tree/master/src/mscorlib/src/System/Collections/Generic
В шарпдевелоп, когда на элемент в коде наводишь, по правой кнопке есть опция что-то типа show definition, открывает .cs класса, уверен в студии есть подобное
>эмуляторами несуществующих машин
А когда появляться такие процессоры, под которые создавались шарп и джава?
Я тоже ковыряюсь в этом говне, правда у нас DevExpress.
Я тоже, и у нас ещё криптон для красивостей подключен.
Посоветуйте с чего начать что бы реализовать свою мечту. Я понял что мне нужен шарп и юнити. Так вот начну с шарпа, подкиньте гайдов и книг годных, в долгу не останусь.
Только на ратан не кидайте
Адам Фриман
Вкатываюсь в автоматизацию тестирования.
Дочитываю гилберта шилдта "полный справочник по c#"
Возникают следующие вопросы:
1) Знаний простого языка недостаточно. При создании тестового фрейморка встает вопрос об организации архитектуры классов и тп. Что читать по теме? Как вникнуть?
2) Как набраться грамотной практики или что читать дальше?
Есть события, есть динамическая идентификация типов. С чем их едят? Как мне понять, помогли бы они мне в моих вопросах или нет?
3) Что вообще обычно делают люди на моем этапе?
Спасибо!
Явот думаю, мож пусть лучше каждая либа имеет свой дефолт метод для регистрации рабочих зависимостей? Но не нарушим ли мы какой-то ебанный принцип? Это надо будет еще одну зависимость в овсе либы подтянуть, получается, для селфконфигуринга.
Что думаете, архитекторы?
Вообще, в том же asp.net core многие сервисы конфигурятся с помощью методов расширения(extension methods).
https://github.com/Microsoft/aspnet-api-versioning/blob/master/src/Microsoft.AspNetCore.Mvc.Versioning/Microsoft.Extensions.DependencyInjection/IServiceCollectionExtensions.cs
Для примера. Очевидно что для десктопа нужны своим методы для регистрации, не знаю что вы там используете(ninject какой-нибудь).
Смотря что ты подразумеваешь под DI. Если смотреть на пример MVC и не пользоваться сторонними либами, то тупо перепиши фабрику, которая выдаёт инстанции классов.
Да, я испрашиваю, где вот эти вот "services.Add" пихать.
Есть допустим КорЛиба, ДатаЛиба, СервисЛиба, КакаяТоВажнаяОдинокаЛиба.
И все настройки DI для них всех находятся в одном месте, в стартапе веб апы.
Я думаю распихать их по либам и дергать, где надо, опять же в стартапе веб апы. Например: КакаяТоВажнаяОдинокаЛиба.ConfigureDependies(). Но когда добавится, к примеру, новая веб апа, нам не надо будет копипастить, а просто дергать метод каждой либы, которая будет знать, че ей там по дефолту настроить. Понятно, что тут немного сам принцип рушиться, бо сама либа решает, что ей инстанциинировать, но хз, копипастить в новый апп тоже как-то не ок.
>>49022
Та фабрика скрыта реализацией по сути и сама идея- сделать так, чтобкак можно меньше переписывать.
>сама либа решает, что ей инстанциинировать, но хз, копипастить в новый апп тоже как-то не ок.
А что не так то. Регистрируешь все что нужно, то что нужно сервисам либы и оставляешь внешнее АПИ.
То что там нужно будет другим они могут сами добавить по желанию. Если нужна гибкость, то можешь запилить билдер для либы.
Принципы нарушены это создать статик класс в котором будет по объекту всех твоих сервисов и ты к нему из любого места обращаться будешь
А я наоборот обычно делаю такие конфиг-классы, а то мне все эти фабрики, DI и прочая херня - что Бобику квантовая физика.
В обычном приложении ещё можно, а в неткоровском я не хочу отказываться от удобных плюшек и инъекцию конфига делаю. И ещё не знаю как можно в неткоре нормально получить в своём классе вне контроллера экземпляр объекта из их инжектора. Я не видел у него ничего похожего как у обычных типа нинжекта и Get<>
Так свой класс тоже регистрируй в DI и оно тебе автоматом инжектнет зависимости.
Или тебе нужен IServiceProvider с GetService<Class>()/GetRequiredService<Class>() ?
Контора закрылась
> и оно тебе автоматом инжектнет зависимости.
Ага, автоматом когда я сделаю var helper = new FileHelper();
Да хер там.
А зачем ты вручную его создаешь?
Класс вне контроллера же должен чем-то вызывается и в него можно прокинуть IServiceProvider. Просто, а каким магическим образом ты хочешь чтобы в обход DI тебе создали класс со всеми зависимостями?
Даже в самих роутерах он так и создается(через ActivatorUtilities), но все равно нужен провайдер с коллекцией зарегистрированных сервисов.
> А зачем ты вручную его создаешь?
Потому что я не хочу в контроллере вытащить смапленые поля в мою модель конфига и через 20 методов ее передавать внутрь. Это как раз порождение дебильных и вредных связей. Мне надо в финальном методе вытащить одно значение из конфига и быть уверенным что оно свежее, а не из старта приложения.
А хз, можно поискать либы с computational geometry. Алгоритм в принципе понятен - берешь все свои черные пиксели, переводишь их в координаты точек - это будет исходное множество. Далее ищещь для этого множества выпуклую оболочку любым доступным алгоритмом. На этой выпуклой оболочке береш четыре точки - крайнюю левую, верхнюю, правую нижнюю - через них если линии провести - получишь прямоугольник покрывающий. Ну и в конце начиная с этого прямоугольника пройтись по выпуклой оболочке rotating calipers - получишь все покрывающие прямоугольники, там найдешь хоть с минимальной площадью, хть с минимальным перметром
Так платиновый ньюфажный вопрос:
Как совладать с закрытием/открытием форм?
Например я стартую апликуху с формы логина, дальше нужно открыть уже другую форму, а эту закрыть, this.Close() убивает приложуху, еще вариант писать костыль в конструкторе форм.
Как и чем господа решают этот вопрос?
Посоны, бамп
Сужу до двух вопросов:
1) Что можно почитать по паттернам программирования и какие знания перед этим нужно иметь?
2) Что можно читать после илберта шилдта "полный справочник по c#" для того, чтобы больше вникнуть в шарпы
Нахуя такой изъёб?
Так мешает маленькая формочка где-нубудь в углу?
Ящитаю, что тебе полюбасу придётся иметь либо окно консоли, либо одну главную winform.
Пусть я в ней все-равно юзаю Console.WriteLine("cykablyat");
Куда эта хуйня выводится и как ее переадресовать в видимый спэктр.
yobaprog.exe > dump.txt не предлогать
Здравствуйте, можете помочь ньюфагу?
В чем разница между потоком Thread, параллельным Task, и асинхронным кодом (async/await)? У меня есть готовый код, где создается поток Thread, в нем через Task запускается async метод. Целесообразно-ли так делать? Мне кажется, что это бредовая конструкция.
Насколько я понял, в основном разница между этими тремя подходами заключается в том, что Thread создает новый поток, Task задействует уже существующий пул потоков, а async метод обладает свойством await, приостанавливающем выполнение кода.
>как ее переадресовать в видимый спэктр.
Что значит видимый спектр?
>Куда эта хуйня выводится
Никуда, stdout нет
звучит диковато, зачем в и так отдельном Thread исрольковать async/await
>>49462
>async метод обладает свойством await, приостанавливающем выполнение кода
декларация async / await инструктирует компилятор создать state machine, которая будел исполнять код параллельно.
приостановки на точке вызова именно и нет и далее выполняется следющая строка кода.
Task<T> более современный способ делать то, что могут Thread, и что они не могли: возвращать данные по выходу.
Это я так пытался шутить. Вроде нашел тут:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/701e02cc-ad77-46b9-b4fc-410bb3ff7a0d/using-a-console-with-a-windows-form?forum=csharpgeneral
>В чем разница между потоком Thread
Создает отдельный полноценный тред.
>>49462
>параллельным Task, и асинхронным кодом (async/await)?
Асинхронный код в основном Task-based, поэтому они все работают через ThreadPool. Сама асинхронность менеджиться ОС/шедулером ОС в данном случае.
>У меня есть готовый код, где создается поток Thread, в нем через Task запускается async метод.
Зачем тебе отдельный тред в данном случае?
Если у тебя там йоба-расчеты, используй async/await to запускай параллельно, через Task.Run
Если же просто асинхронно нужно что-то делать, там данные фетчить и т.п. - просто await'и явным образом объявленный Task.
> а async метод обладает свойством await, приостанавливающем выполнение кода.
Он саспендит текущий контекст, но не блочит ту нить, в контексте который ты запустил задачу.
>декларация async / await инструктирует компилятор создать state machine, которая будел исполнять код параллельно.
Нед.
Асинхронно != параллельно.
Параллельно, значит одновременно, асинхронно же работает по принципу promise и порядок не гарантируется. Она (задача) может запуститься чрез несколько секунд после того как ты вызвал await, даже если у тебя там 2+2, а может и моментально.
>Она (задача) может запуститься чрез несколько секунд после того как ты вызвал await
отчего это зависит?
Наркоман
От загруженности общего тредпула. Потому как асинхронная имплементация C#/.net полагается на асинхронную базу ОС - в большинстве случаев это управляется самой ОС. Как будет возможность, поставленная в очередь задача будет запущена. Я, конечно, утрировал, когда сказал "через несколько секунд", там счет на мили/микро-секунды обычно. Разница в том, что явного выделенного треда для какой-то задачи (если только ты сам не укажешь это) в асинке нет.
>там счет на мили/микро-секунды обычно
Тогда я спокоен
у меня прога сканит по железу, возвращая по ивенту кучку данных. Я все думал, стоит ли этот Task сделать вечноиграющим в лупе, т.к. сейчас я его перезапускаю из таймера в GUI
Если тебе нужно поллить железо постоянно, можешь поглядеть в сторону Rx - Reactive-Extensions для .NET, они вроде на even'ах стоят асинк-подход.
Немного не так.
Есть DAQ карта, к которой дана отмотка под .NET
Вызовы все синхронные (WriteDigitalOUT, ReadAnalogIn и т.д.) А управляет эта карта самопальным девайсом на полке. То есть надо ручками переключить коммутатор цифровыми выходами, подождать, прочитать. И так всякий раз поновой
Просто через магический interrupt/callback/yoba event handler не получится
>2018
>девелопинг
Пиздец, и как это говно потом отладить/отредактировать. Вот есть у меня 100500 страниц и на 9932 надо написать что ты жирный. Мои действия?
На чем делать дизайн для андроидо приложух?
Взять ProcessExplorer и посмотреть на стэки каждого треда. То, что у тебя Main - это .Net-овский поток (System.Threading.Thread), их можно в дебаггере в студии посмотреть и явно создавать, обычно это Main и несколько WorkerThread из пула потоков. ProcessThreadCollection - это коллекция системных потоков (System.Diagnostics.ProcessThread), они не совпадают с .Netовскими, .Netовский поток может в разные моменты времени работать поверх разных потоков (а может работать поверх не потоков, а легковесных волокон (fiber), если крутится внутри Sql Server например). Среди этих потоков есть потоки которые твой Main и Worker Thread обслуживают, еще там наверняка торчит набор потоков EE (Execution Engine - собственно исполняемая среда CLR): там поток обслуживающий внутреннее говно CLR, поток Garbage Collector, поток для Finalizer, который иногда в .Net оборачивается. Привязать .Net поток к системному можно либо указав ему ApartmentModel STA либо же юзануть Thread.BeginThreadAffinity()/EndThreadAffinity()
Насколько помню, можно было просто в свойствах проекта поменять тип приложения с Приложение Windows на Консольное
Шарпач, кто-то знает или может у кого-то есть соус проекта примитивного ворда: выделил текст в ричтекстбоксе - нажал на жирный/италик, шрифты, цвета вот это вот все.
Анон, есть рекомендации по созданию асинхронного tcp-сервера с помощью .net core? Что почитать, что изучить?
Наверное WCF, но его в Core не завезли.
Спасибо, поставил, посмотрел.
А разве там что-то можно программно изменять? Я думал, что как в редакторе нарисовал, так и будет.
Уже больше параметра с вэлью.
А как сделать, чтобы можно было создавать программно новые окна с элементами на них.
К примеру, нужно создать 100 окон и на каждом количество кнопок равное номеру окна. У каждой кнопки должен быть обработчик событий, который выводит алерт по формату "Вы нажали кнопку Х в окне Y".
Я бы ёбнул ивент-хендлер с темплейтом, эдакий колхозный DI, ну или совсем просто - прямо в ивент хендлере обращаться к имени родителя кнопки, пославшей ивент.
Жава это C# 4.0, смирись.
Погугли как создавать новые окна в рантайме, а вообще можно просто ещё один файл с разметкой и окном сделать. Кнопки появятся как это обычно делается - window.children - и пихай сколько влезет. На кнопоки прямо в момент создания button.onclick += твой хендлер.
Туда задача скорее не как сделать, а как сделать так, чтобы было не говно.
Я хочу, чтобы было примерно так:
for(int i=1;i<=100;i++) {
Window w= new Window();
for(int j=1;j<=i;j++) {
Button b=new Button(w);
b.addObrabotchik( //тут не знаю что написать
}
}
Ну я же говорю, погугли как нормально окна делать. Этот свой цикл заснуть в запуск приложения (onInitiate или как-то так, там должна быть пустышка под это дело в свежесозданном проекте). Создаешь окно Window. Button btw = new Button(), btw.onClick += (твой хендлер), Window.children.add(btw)
В чём конкретно проблема? Борда - обычный круд уровня Contoso University на MSDN. У тебя больше джаваскрипта и серверного кода выйдет, чем в ASP.NET приложении
Пиши на обычном мвц, хули ты выебываешься.
В принципе да, запилить обычный круд, кастомизировав немного, самая норм тема, спс.
Я писал, правда года 4 назад и на nancy. Она до сих пор работает, лол.
Сейчас вот переписываю на core и решил разбить на два микросервиса(по своим нуждам). Скоро возьмусь за часть, которая собственно и отвечает за саму борду.
Аноны тебе верно говорят - если простейшая доска уровня tynyib, то это банальная крудня с несколькими контроллерами 3-4 сущностями.
Извини, раньше не мог. У нас в проекте сделано вот так, ты оказался прав насчет Dispose, просто это изящнее сделано через блок Using.
private static void Run(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ApplicationExit += OnExit;
Application.ThreadException += (sender, eventArgs) => OnError(eventArgs.Exception);
AppDomain.CurrentDomain.UnhandledException +=
(_, e) => OnError((Exception) e.ExceptionObject);
try
{
using (LoaderScreen.Show(() => new StartForm()))
{
InitializeAppContext(args);
ConfigureDependencies();
StartBackroundServices();
}
AppUtils.SetRunningState();
_mainForm = CreateMainForm();
Application.Run(_mainForm);
}
catch (Exception ex)
{
OnError(ex);
}
}
Извини, раньше не мог. У нас в проекте сделано вот так, ты оказался прав насчет Dispose, просто это изящнее сделано через блок Using.
private static void Run(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ApplicationExit += OnExit;
Application.ThreadException += (sender, eventArgs) => OnError(eventArgs.Exception);
AppDomain.CurrentDomain.UnhandledException +=
(_, e) => OnError((Exception) e.ExceptionObject);
try
{
using (LoaderScreen.Show(() => new StartForm()))
{
InitializeAppContext(args);
ConfigureDependencies();
StartBackroundServices();
}
AppUtils.SetRunningState();
_mainForm = CreateMainForm();
Application.Run(_mainForm);
}
catch (Exception ex)
{
OnError(ex);
}
}
> Вот только что получил в ебло так как обжект это не обжект, а массив, а как то понять что от сервера пришло и в что его конвертировать?
Ну ты наугад что ли запросы шлешь или как?
Неа, я ПОДПИСАЛСЯ, обратно ОТВЕТОЧКА в обжекте, а потом дата в массиве. Нужно парсить не JObject.Parse как выяснилось, а c помощью Jtoken.Parse, поулчать тип и дальше делать свои грязные дела.
Ну а у нас нет. И мне нравится как выглядит такой код.
А по моему я был не прав.
Затестил вчера, вроде память таки протекает.
Первую форму передавал и хайдил/показывал во вторую, а вторую уже dispose.
Пиздец, неужели в 2018 нет нормального решения исподкоробки такой простой проблемы.
Руками все ссылки прибей
Нажал в студии кнопачку созлать бд - вылетела вот такая хуйня. Это че, надо ставить какую то отдельную прогу для бд? Мб есть что то попроще кроме тхт, джсон и хмл?
В твоем случае думаю sqlite отлично подойдет. Если с бд не связывался, то сразу бери EF.
> sqlite
читал, что линкю может работать не только с коллекциями и массивами, но еще и с sql. На sqlite это распостраняется?
>сразу бери EF
что такое еэф?
Или если с бд мало взаимодействий, то можно обойтись как sqlite-net, так и dapper. EF все дает порядочный оверхед и для мелкого приложения не нужен.
спасибо, пойду почитаю что это за хуйня такая
A line is defined as a sequence of characters followed by a carriage return (hexadecimal 0x000d), a line feed (hexadecimal 0x000a), or the value of the Environment.NewLine property. The returned string does not contain the terminating character(s). By default, the method reads input from a 256-character input buffer. Because this includes the Environment.NewLine character(s), the method can read lines that contain up to 254 characters. To read longer lines, call the OpenStandardInput(Int32) method.
https://msdn.microsoft.com/en-us/library/system.console.readline
var setup = new AppDomainSetup();
setup.ShadowCopyFiles = true.ToString().ToLowerInvariant();
setup.ApplicationName = "Test";
setup.ApplicationBase = "E:\\Test";
setup.CachePath = setup.ApplicationBase + "\\Cache";
appDomain = AppDomain.CreateDomain(setup.ApplicationName+uniqueNumber,null,setup);
objectHandle = appDomain.Load("TestDomain");
Далее пока работает приложение хочу заменить TestDomain.dll, но говорит что файл занят и не позволяет этого сделать.
Пытался трюки с File.ReadAllBytes(path), но все равно блочит файл, хотя для Assembly.Load(File.ReadAllBytes(path)) этот трюк работает.
Забыл добавить, в папке Cache появляется копия моей dll, так что как бы shadowcopy делает свою работу наполовину.
Написано же.
>By default, the method reads input from a 256-character input buffer.
По-умолчанию, ограничено размером byte.
>To read longer lines, call the OpenStandardInput(Int32) method.
https://msdn.microsoft.com/ru-ru/library/5kdtbb63(v=vs.110).aspx
С разбором, конечно.
Можешь юзать SortedList<T>
Либо нже написать свой на базе LinkedList где приоритетом будет сортировка и вставка (но тогда поиск и запрос будут медленными)
Волшебного массива не существует.
Имеет ли весомым аргументом разрабатывать приложения (в т.ч. игры на том же самом unity) именно на C#, а не на Java.
Есть ли какие-нибудь весомые преимущества и недостатки перед Java.
И как чувствует себя шарп в мобильной разработке.?
Java в 2x востребование сисярпа, так тчо если хочешь иметь привилению выбирать - сам понял
Юнити на джаве? Впервые слышу. Шарп после джавы просто сказочка в плане удобства и мелких фич.
Что, никто не знает как сделать? У меня ИДЕ-шка не ругается на вариант, который я хотел бы использовать, но он нихрена не работает. В чём причина хоть поясните.
Ну не выполняется условие после вывода единицы. Значит что на событие никто не подписан, хотя по-идее это не так.
Что означает таинственное "viewElement.OnViewEvent += OnViewEvent; //А ХАЧУ ТАК!" ? Можешь залить финальный код который должен работать, но не рботает?
Да нет же. Просто во View и ViewElement эвенты одинаково называются. И по идее, при вызове события во ViewElement, оно пробрасывается дальше, во View
Бля ну класс. Но почему? Чем объясняется это ограничение? Сам же видишь как удобно бы было. Не пришлось бы городить ебанутые обёртки.
А какие проблемы? Зачем мне их по-разному называть? Они так-то за одно и то же событие обрабатывают
Или мне, блять, их нумеровать по порядку вызова?
Читаю, там написано что у каждого элемента есть ссылка на следующий и они размещены не по порядку как массив, т.е. в случае с массивом не нужно все пересоздавать чтобы вставить информацию в середину например.
Т.е. речь идет об отображении 20 записей?
Если да, то не проще ли завести два списка - один для двадцати последних, другой - 20 самых больших или какой там у тебя критерий.
100к записей (да еще и постоянно меняющиеся) глазами просмотреть нереально.
Ага, и именно поэтому конструктор листов может принимать количество элементов - чтобы потом докидывать их в готовый массив, а не плодить копии на каждый вызов Add. Если примерно знаешь сколько элементов будет в итоге, можно добиться милой оптимизации.
На инсерте все равно будут копии, если тот поц решил массив постоянно сортировать.
Пускай развлекается как хочет.
>Нет, я внезапно про list тоже
В таком случае какой дырявой жопой ты читал описание обычного List?
Где ты там нашел:
>Читаю, там написано что у каждого элемента есть ссылка на следующий и они размещены не по порядку как массив
^ вот это - LinkedList
List<T> есть просто array<T> и все List-операции - это операции с массивом, где вся логика резайса за тебя продумана. Каждый раз при Insert или Add() - идет расчет, нужно ли резайсить и если нужно - создается новый массив array[capacity] (обычно capacity больше на X от текущего Count) и старый копируется через AddRange (с сохранением текущего индекса).
график у меня симметричен относительно ОX и для него установлены границы. Сначала он рисует нижнюю часть, доходит до границы и вот тут появляется то, что я красным пометил на пикрелейтед. Возможно ли как-то избавиться от этой линии? На ум приходит только разбить на два графика одинакового цвета, но может есть менее костыльное решение?
Когда рисуешь линию, проверять, что x1<x2.
Спасибо.
Чё-т у них дорогой хостинг 10 USD/месяц. Хотя что я жду от микрософтов...
Преобразовывай байт-массив Bitmap в JPG или PNG соответствующей либой - libpng или libjpeg
кстати, да
поясни за ксаморин или как там его
ты хэлловролдщик как и я, или сисярп програмисту паттерны проектирования не нужны?
Ты вообще прочитал свой пост перед тем как отправить?
Вот цитирую его:
"Зачем мне сисярп, если есть огромный, сиреневый дилдак?"
Не вижу разницы между дилдаком и сисярпом. Поэтому и спрашиваю, есть ли она
или buy) и уникальынй iD запускается 150 итераций для кажого, в итреации if() else if(). Все это дело дрючится 60 раз в сек. Ясное дело 150 на экран не влезет, да и даже если так, от 10% нагрузки ничего случится не должно, но хочется понять как делать правильно. Может быть где-то я подобосрался и есть другое решение.
Вопрос был откуда берется разница при вводе с клавиатуры и из файла, т.е. почему при вводе из файла количество считываемых символов не ограничено 256 и где про это написано.
Судить о перспективе ЯП по количеству тупых вопросов... окей.
возможно, но зачем?
В 80% случаев, если есть проблемы с производительностью, достаточно пройтись профайлером, найти один-два самых загруженных метода или причину их нагруженности, поправить пару строчек и проблем больше нет. Ещё в 15% нужен рефакторинг. Реально запариваться с низкоуровневой оптимизацией и борьбой за процессорные такты нужно максимум в 1%.
Ассемблер - это интерпретируемый, а не компилируемый язык (если только речь не идёт о FASM'е).
Ну и ситуация с clr и jvm не то, что получше, она несравненно лучше, т.к. байткод создавался не от балды или велению левой пятки, а с целью абстрагировать код сборки от процессорной архитектуры минимальной ценой. И в целом это получилось, оверхед там настолько незначительный, что средний программист что на плюсах, что на шарпе напишет практически одинаково фиговый код.
они появились ещё до того, как появились шарп и джава. Потому что набор команд байткода прекрасно транслируется практически на любой процессор со стековым регистром (без него, вероятно, трансляции будет недостаточно и нужна компиляция) - а это все процессоры какие ты знаешь.
Можете сказать, пожалуйста, насколько целесообразно вкатываться в ваш язык без корпоративного опыта? Освовил некий core, но выйти на работу не могу из-за разниц в зп. Могу год+ просто сидеть дома и пилить проекты/пробовать в веб.
Интерпретатор - это программа, которая выполняет синтаксический разбор текста программы, а затем исполняет её. Т.е. без программы интерпретатора программа не может быть выполнена.
Компилятор же после синтаксического разбора формирует исполняемый код, который выполняется уже независимо от компилятора.
Почти все ассемблеры являются компиляторами, потому что формируют машинный код. Хотя раньше, когда в ассемблерах не было макросов и прочих облегчений для программиста, их называли трансляторами.
Твоё утверждение отчасти верно - то, что ты называешь интерпретатором, им и является. Но не только это. Интерпретатором так же является и программа для построчного разбора кода, сиречь, однопроходная - прочитала строчку, интерпретировала, записала результат интерпретации в экзешник или куда надо.
А трансляторы - это вообще класс, в который входят интерпретаторы и компиляторы.
Есть проект в ужасном состоянии, который я рефакторю. В нём есть пара .xaml-файлов с соответствующими классами.
Пусть ассембли и корневой неймспейс называются "AB", а рассматриваемый класс - "X". Раньше X.xaml.cs и X.xaml лежали в папке с названием "AB" и X.xaml.cs имел неймспейс "B". В X.xaml было указано x:Class="B.X" и оно работало. Я перенёс оба файла в папку "C", поменял в X.xaml.cs неймспейс на "AB.C" и воткнул очевидный путь в X.xaml: x:Class="AB.C.X". И компилятор послал меня нахуй. Почему? Потому что "namespace C does not exist in namespace AB.AB". Нет, это не опечатка. Он придумал себе неймспейс и лезет в него.
Что, блять, с ним не так? Как эту парашу фиксить вообще? Спаси, анон, я уже три часа с этим дерьмом мучаюсь. В гугле предлагают только способы "назначить кастомные XML-неймспейсы для шорткатов бесплатно и без смс".
Апдейт: если выставить классу "X" неймспейс, который не начинается с "AB" (например, "AA.C"), то оно начинает работать.
Смена AssemblyName и RootNamespace ничего не меняет.
Есть несколько вопросов, но сперва предыстория
Для универа нужно сделать простенькую программу winform - рисование графиков математических функций. Сказали использовать autofac для внедрения зависимостей. Ну ок, начал делать, почитал про паттерн MVP - реализовал: Математическую модель, которая из репозитория с мат.функциями(просто List c ними) в зависимости от того, что там выберет юзвер на вьюхе в соответствии с ограничениями, шагом, рассчитывает точки, через Презентер передает во Вьюху, та уже отрисовывает в свою очередь. Еще нужно запилить создание отчетов, но там кажется не особо сложно. Вроде бы всё понятно(поправьте, если накосячил)
А теперь - что мне сделать с autofac? Куда его тут можно добавить? Или может быть у кого-нибудь пример простенький есть для понимания
Из моего опыта на прошлой работе я могу только порекомендовать добавить его в жопу тому, кто сказал его добавить.
Что думаете, архитекторы.?
Я не эксперт, но у тебя написано поместите 1 В 2, а у тебя отдельно они.
Это откуда?
Видео курс WPF Углубленный.
Фигуры, кисти и трансформации
1:19:37
Geometry и класс Visual
1:06:20
Анимация в приложениях
1:09:44
Мультимедиа и пользовательские элементы управления
1:09:01
3D Графика
1:03:55
Шаблон проектирования Model-View-ViewModel.
0:45:43
пиздец короч
Дак и в книгах тоже самое. А как динамически в программе элементы размещать, никто не пишет.
Не понятно, то ли это для даунов пишут, то ли я даун.
А, это да, MVVM единственная полезная вещь там
Я пробовал размещать элементы динамически, даже получалось, но после этого теперь кажется - это признак хренового дизайна и архитектуры.
>>55119
А что за институт и на кого ты там?
И, главное, что у вас за литература по Шарпу?
>>54951
>>55075
Анон, ты если найдешь где это счастье на торретах - поделись?
>на кого ты там?
Программный инженер. Хотел на информационные технологии, но закинули туда.
Обычный провинциальный институт. Заочка, поэтому никакой литературы нет. Открывай гугл и ищи сам как и что делается.
>Заочка
Платно/бесплатно?
>поэтому никакой литературы нет
В смысле - нет? Тебе даже списка необходимой литературы не дали?
Если кому интересно. Оказывается, какое-то ебанько положило другой класс в неймспейс "AB.AB". Не совсем понимаю, почему это как-то повлияло, но стоило сменить его и всё заработало.
Неоднозначный показатель. С одной стороны, можно действительно сказать о низкой популярности. А с другой, что язык грамотно документирован, и необходимость задавать вопросы отпала.
Плюс языки достаточно легкие, многие вкатывалы их изучают, даже в вузиках буржуйских питон и жс преподают. А эти вкатывальщики имеют обыкновение в случае чего сразу бежать задавать однотипные вопросы, на которые уже 500 раз ответили, прямо как на двоче.
Наверняка можно это сделать менее костыльно, но весь массив можно пихнуть в переменную с помощью foreach
Открываю гугл и там пиздец, webforms, mvc, webapi, core-хуере, различные серверы и так далее. И ни по одной из тем нет комплексного и полного курса/гайда, только документации.
С чего начинать изучение-то?
спасибо
сам хуею
Что значит нет?
https://docs.microsoft.com/en-us/aspnet/core/index
Имхо старый аспнет будет легаси, возможно ты встретишь его на работе, но я бы рекомендовал потихоньку начать учить core.
>И ни по одной из тем нет комплексного и полного курса/гайда, только документации.
Бекэндерам на шарпе по 5 кусков платят не потому, что можно пару комплексных и полных курсов/гайдов пройти и начать ебашить.
Ненавижу блять эту хуйню, ебался весь вечер, но стоило запостить вопрос, как всё заработало.
Нас всех ебут блок-схемами кода по ГОСТу.
И вот я решил написать приложение чтобы оно превращало код С# в готовые блок-схемы по ГОСТУ
Потому что ничего подобного я не нашел в инете, а задача не кажется сверхсложной.
Но проблема в том, что я не знаю даже с чего начать. Не могли бы вы посоветовать, на чем делать. В итоге хотелось бы, чтобы у нас было что-то вроде картинки 1.
Сами элементы блок-схем хорошо бы перетаскивать руками и редактировать. Но можно пропустить.
Главнее, чтобы это можно было как-то выводить на лист а4 на печать, а если схема большая слишком, то разбивать ее на несколько листов.
Есть идеи?
По mvvm и вообще по wpf посмотри на Ютубе angelsix, но я там далеко не все понял, так как я тупой
for(int i=0;i<N;i++)
{
if (i>m)
count++;
}
for(int i=0;i<N;i++)
{
count+=Convert.ToInt32(i>m);
}
for (int i=0;i<N;i++)
{
count+=i>m?1:0;
}
Это вообще что за неведомая поебень?
И вообще, зачем тут цикл, если у тебя заведомо известный набор целых чисел от i до m?
if (i > m) { m = N-i }
Да и вообще тут цикл не нужен, я более чем уверен существует математическое решение найти все кол-во целых числ от i до N которые больше m
Хз насчет - 1, смотри сам: набор от 0 до 30, m = 20
Значит кол-во чисел больше 20 = 30-20 = 10
-1 поставил ибо у него в цикле for(int i=0;i<N;i++), и N не включается
if (i>m) count++;
или
count+=i>m?1:0;
Дело вкуса, и так и так норм
а вот
count+=Convert.ToInt32(i>m); - полный булшит
<Setter Property="IsReadOnly" Value="{Binding Path=EditMode, TargetNullValue=true, Converter={StaticResource ResourceKey=ReverseBool}}"/>
как и сам линкью
Справедливо будет заметить, на последнем скрине код нечитаем.
Штука, которая делает код менее читабельным, - полная хуйня.
Нужна только чтобы повыёбываться.
Анон, работай со строками в циклах пракильно
StringBuilder result = new StringBuilder();
foreach (var t in arr)
{
if (t != char1)
result.Append(t);
}
return result.ToString();
Есть программа без исходников, написана на шарпе. При запуске ищет библиотеку Interop.IWshRuntimeLibrary с версией 1.0.0.0 и PublicKeyToken=null.
Однако, в папке с ней поставляется библиотека с PublicKeyToken, отличным от null. В результате выпадает следующее исключение:
Exception
Exception has been thrown by the target of an invocation.
InnerException
System.IO.FileLoadException: Could not load file or assembly 'Interop.IWshRuntimeLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Interop.IWshRuntimeLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
at Eclipse_Litetouch_Keyboard.ProgramItem.GetFileIcon(String path)
at Eclipse_Litetouch_Keyboard.ProgramItem.ProcessFile(String programming)
at Eclipse_Litetouch_Keyboard.ProgramItem.SetProgramming(String programming)
at Eclipse_Litetouch_Keyboard.PopulateProgramSelection.PopulateApplicationSelectionThreadSafe(String filename)
Как это решить?
Бля, спасибо анон. Я и не задумывался о такой хуйне. хотя в тысячах строк моего говно кода использование string builder вместо стринг в двух с половиной методах вряд ли поможет в оптимизации всей программы.
Задача 1:
Реализовать строковый калькулятор, который:
1. Выполняет операции сложения, вычитания, умножения и деления над целыми и дробными
числами.
2. Правильно определяет порядок вычисления при использовании скобок.
3. Проверяет правильность входной строки и в случае ошибки, сообщает об этом.
4. Работает из командной строки.
Задача 2:
Написать класс MyList<T>, который реализует интерфейс IList<T>
Ебался 3-4 дня, все сделал, итог - на данный момент нам нужен более подготовленный специалист.
По делу что конкретно не сказали, видать ебаный HR не заморачивается такими вопросами, и мой вопрос решила заигнорить, собственно прошу вас прокомментировать мое творение, не поливайте говном, не претендую на то что я все сделал идеально- просто хочу знать что не так для дальнейшего развития.
1 задание : https://pastebin.com/KbNuEV7T
2 задание : https://pastebin.com/Tg0MrA0a
Лол. За 4 то дня можно фейковое объявление сделать и хомячки стопку ответов на любой вкус предоставят. Я сам так на работу устроился.
>нужно решить задачу на языке по выбору
>пишешь объяву по вакансии с неимоверной ЗП и 11кл общей школы
>тебе бесплатно пишут решение задачи
Хммм...
во 1 не факт что много кто согласится, во 2 не факт что эти люди сделают задание верно, в 3 пока ты будешь этим заниматься будет идти время, а если ничего не получится просто проебешь шанс, в 4 когда ты придешь на работу и выяснится что ты нихуя не можешь тебя выставят от туда такого хитрожопого пиздабола. Но ты конечно такой прошареный счастливчик, а мы все тебе завидуем(нет)
Лол, что за пиздец у тебя вместо программы? Я даже читать это говно не стал. Это же, черт побери, основы основ. Даже Страуструп в своей книге для студентов не-пту-а-колледжа, вообще не знакомых с концепцией программирования, дает пример ровно такого же калькулятора. Короче, сначала матчасть подтяни, а потом уже на работу устраивайся.
Что за высер блять, ты либо говори по делу либо сьеби нахуй.
>1 задание : https://pastebin.com/KbNuEV7T
>Calculate(output); //Находим значение выражения
>return result; // Результат
Комментарии надо было по-английски писать
На самом деле такие избыточные комментарии к очевиднейшим вещам просто не нужны. Комментарий ради комментария, так никто из опытных не пишет. Почитай главу про комментарии в Совершенном коде (Макконнелл), да и всю книгу по возможности прочитай, полезно.
Ну и стиль написания как бы говорит о том, что опыта пока немного. Одно отсутствие var чего стоит.
А во втором задании, я так понимаю, от тебя хотели собственную реализацию списка, а ты взял и готовый List завернул в интерфейс. Смысол?
И, видимо, долго возился для такого результата.
Резюме - читани главу Макконнелла про комментарии, приведи все в порядок.
На самом деле неблохо, но ты наверняка можешь лучше. Постарайся причесать код, например, сделай приоритеты операций enum'ом, такие вещи:
string output = MakeRPN(input); //Обратная польская запись
float result = Calculate(output); //Находим значение выражения
return result; // Результат
посокращай до:
var output = MakeRPN(input);
return Calculate(output);
и т.д.
Я вот этого и не понял, если есть готовый интерфейс зачем писать свой? Я только из соображений логики в этом запутался, ведь "реализовать" можно по разному. Хз, может я даун конечно.
На счет комментариев спасибо, понимаю что нужно писать на англ, и их нужно сократить, на самом деле так я никогда не писал их, видимо решил сделать все идеально и обосрался немного, ну не суть, это не столь критично, на счет var и прочего тоже не особо критично и постараюсь воспользоваться этими советами, на счет второго задания я уже написал.
Вот и сделай реализацию. И еще, тебя просили сделать IList<T>, а ты сделал специализированный класс для хранения Monster. По идее я беру твой класс и прогоняю на нем тесты (кстати, где они?) для строк, чисел и все тесты зеленые. А у тебя только монстров можно хранить :(
А зачем надо везде писать вар? Поставил решарпер, а он говорит, что надо бы поменять явное определение на вар же менее читабелен.
мимо другой хэлловордщик
Но ведь
Класс List<T>
Представляет строго типизированный список объектов, доступных по индексу. Поддерживает методы для поиска по списку, выполнения сортировки и других операций со списками.
T-Тип элементов в списке.
То есть я могу указать свой тип?
открой браузер
видишь там такая ровная бела строка вверху?
Это строка ввода
Смотри трюк покажу
пиши там
"g resharper var c#"
опана - первый результат на стековерфлоу с ответом
Про комментарии на английском я пошутил. Если их написать на английском, то получится ровно то же, что и в коде написано.
Про то, что критично, а что не критично - решать не тебе (пока что), от тебя требовалось, среди прочего, показать знание спецификации и фич языка.
Почитай:
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/generics/introduction-to-generics
Т.е. от тебя хотели такой список, который сможет работать с разными типами.
Блять, так сложно было уточнить это?(Риторический вопрос) Я бы в этом легко разобрался, но видимо я должен быть на 20% экстрасенсом, чтобы получить эту должность. Или считается что достаточно пары слов и человек должен додумать сам, в этом заключается компетентность? Или компетентность в том, чтобы уметь быстро разбираться в новом и подстраивать свою работу под заданные условия? Интересно.
>достаточно пары слов и человек должен додумать сам, в этом заключается компетентность? Или компетентность в том, чтобы уметь быстро разбираться в новом и подстраивать свою работу под заданные условия?
Это все действительно очень полезные качества, а еще нужно умение уточнить задачу (т.е. задавать вопросы), если что-то непонятно или обнаружилась неоднозначность.
Риальне, а зачем var юзать? Я как бы специально на языке со строгой типизацией пишу, чтобы знать, что в переменной конкратный объект хранится, а не хуй пойми что там из функции возвращается.
Держи пятюню
Двачую этого.
Юзаю var только совместно с linq и в линкпаде, когда нужно что-то быстро проверить.
Еврокомиссия хочет обязать GitHub фильтровать код на этапе загрузки
Еврокомиссия рассматривает законопроект, который может обязать GitHub и другие платформы, обеспечивающие совместный доступ к коду, реализовать мониторинг всего загружаемого пользователями контента на предмет потенциального нарушения авторских прав. Законопроект распространяется на различные категории контента, от видео и аудиозаписей, до исходных текстов.
В настоящее время GitHub, в соответствии с действующим в США Законом об авторском праве в цифровую эпоху (DMCA), обязан рассматривать требования от правообладателей по блокированию уже добавленного контента. Несмотря на активное содействие по удалению нарушений авторских прав часто действия правообладателей превращаются в борьбу с ветряными мельницами, так как вместо удалённого репозитория тут же загружаются новые и создаются многочисленные форки, для удаления которых требуется отправка уже нового требования DMCA.
Авторы находящегося в рассмотрении законопроекта пытаются добиться введения в практику упреждающей блокировки, когда блокировка производится на основе фильтров, включающих шаблоны защищённого авторского правами контента, и эти фильтры применяются на этапе загрузки контента или для сканирования уже размещённого во всех репозиториях кода. При подпадании контента под фильтр он автоматически блокируется, не дожидаясь отправки явного запроса от правообладателя. В случае ложных срабатываний фильтра, которые трудно исключить, разработчику потребуется доказать, что его код не нарушает авторские права, и до завершения разбора ложного срабатывания разработка окажется приостановленной.
http://opennet.ru/opennews/art.shtml?num=48285
По сокрее бы уже запретили программировать.
А то малоли че, какой нибудь плебс возьмет и случайно скопирует функционал святой собственности корпорашки.
Право программкать надо сделать передаваемой по наследству и то только особоотличившимся сотрудникам крупных контор.
Ну, то есть, я прошел курс на сололерне, прочел учебник и что? В нём только какое-то говно, несомненно, полезное, но оно, в основе своей, для математических операций, как изучать остальное? Вот я в визуал студио по примеру из интернета склепал вырвиглазное приложение, гоняющее мне красные шары без коллизий по экрану, но там используется совершенно левые операторы, которых в учебнике нет.
Откуда взять эти практические операторы, а не сухой матан? В опенсорсе на гитхабе ковыряться?
У меня есть опыт программирования на достаточно примитивном встроенном языке и на нем я делал достаточно топовые в своем сегменте моддинга игр вещи, то есть, хочется верить, что я не совсем дерево
Попробуй реализовать свой проект.
Желательно который поддерживает базы данных.
https://www.codewars.com/
Задачки уровня васянлабба можешь покурить на этом сайте.
Ну и конечно можешь попробовать поискать СТАЖИРОВКУ. Для практики не так плохо.
Окей, значит, буду, как дебил, пересобирать все исполняемые файлы и библиотеки, чтобы исправить этот ссаный референс...
Бляд как создать файл с именем строки в .нет 4.5?
Сейчас можно так:
string fileName = "filename";
File.WriteAllLines($"{fileName}.csv", string[])
но в 4.5 так еще нельзя. Обязательно использовать WriteAllLines.
использовать string.Format или string.Concat
Ну или File.WriteAllLines(fileName +."csv", string[])
А блядь спасибо, что-то туплю сегодня
Ок, какой бекграунд должен быть? Некоторые говорят, желательно веб для начала задрочить.
Веб просто самый распространенный.
Попробуй написать простейший CRUD на ASP.NET с использованием Базы Данных MySql или MsSQL.
Ну или какой нибудь потешный Интернет магазин.
Стоит ли тратить на изучение время?
Насколько быстро можно изучить основы?
Или лучше отправить резюме в другую фирму?
И вообще, что сейчас больше ценится Core или MVC?
Кор пока никому не нужен, даже в гейропках на нем вакансий нет почти.
Ок, проблему худо-бедно решил, но тут всплыла куча других - оказывается, нужны библиотеки, которых нет под VS 2012, а переписывать код не вариант - рабочее решение нужно уже к концу недели.
Так как все-таки пропатчить VS 2010 под Windows Server 2012? Все советы в интернете сводятся к одному - бери исошник десятой студии с SP1 и ставь на здоровье. Однако, такого исошника я нигде не нашел. Может, можно как-то обмануть проверку на версию ос при установке? (а потом доставить сервис пак). Подскажите, ребят, сроки горят, пукан горит, даже небо, даже аллах!
>бери исошник десятой студии с SP1 и ставь на здоровье. Однако, такого исошника я нигде не нашел.
чекни nnm
Как же мне горит от этой параши пиздец.
А стили как по уебански сделаны.
Все самое худшее выбрали от древних стандартов HTML.
В замарине хоть оно как то получше реализованно, чи такое же говно?
Это просто неудобно.
Во всех смыслах.
Плюс непонятно как считается тру а как не тру, что бы заказчик/работодатель ебало не кривил.
Если заказчик разбирается в сабже чуть более чем наполовину - кривить всегда будет. А если нет - то пох как сделаешь.
Разумно.
А как удобно? Вручную мышкой размещать и выравнивать?
В строках грида очень даже норм размещать.
Если кусок с кнопками не нужно будет ресайзить - можешь сделать StackPanel c фиксированной шириной кнопок.
Если в рантайме все будет ровно и аккуратно, если не будет прыгать, дергаться и разъезжаться при ресайзе, то никто ебало кривить не будет.
Вот и славненько.
Но мне все раано печет.
Сделали бы лаконично как в CSS, нет бля вот тут тебе шиндоус ресорсес, пиши для каждого сеттера сначала проперти потом валю. Не забудь все это впихнуть в стайл для конкретного обьекта.
Все там ок, нужно просто привыкнуть. Возможности очень богатые, темплейты, биндинги, конвертеры, для извращенцев - онемация. Не без недостатков, но в целом XAML - круто.
Какое ide можно использовать на флешке?до 1gb
Возможно ли вообще сделать portable c#?
>Какое ide можно использовать на флешке?до 1gb
Monodevelop не?
Все-равно нужно таскать .NET redist lkz ефпук тачик
Заходи с браузера на Repl.it.
Чекнул, сама студия - отдельно, сервиспак - отдельно. Сейчас пытаюсь решить заменой setup.exe. Получается пока не очень.
Вроде должно уместиться, не уверен насчет того что эта версия будет работать, но предыдущие при тупом копировании на другой комп работали, единственное что еще надо будет кряк, либо таскать с собой jetbrains-license-server.
При желании я думаю можно еще уменьшить на 20% где-то размер вырезав плагины некоторые и некоторые ненужности.
Короче, проблема была в кривой проверке русской версии. Поставил английскую - все заработало. Теперь надо вырабатывать привычку гуглить сначала на русском )
Web-подобный механизм навигации в приложении. Не использовал его.
Принцип, а не реализация
у него там ниже небось break или return
Неактуально.
Есть класс отвечающий за конект и обработку сокетов. Для работы с сокетами использую библиотеку WebSocket4Net.
Есть несколько акков на сайте. Информация по каждому акку обновляется через сокеты.
Задача. Поднять в цикле конект сокетов под каждый сайт. Для одного акка это делается легко. Типа WebSocket ololo = new WebSocket().
Вопрос. Как подрубиться к сокетам для каждого акка, да так чтобы я мог управлять конектом каждого акка. Типа закрыть или отправить что-то только на конкретно этом сокете.
Собственно в чем проблема. Очевидно, что если я просто пройдусь в цикле по WebSocket ololo = new WebSocket()., то мне откроет нужное количество сокетов, но все они будут иметь "имя" ololo. Как мне каждому сокету уникальное "имя" дать?
Тебе нужно сложить твои сокеты в коллекцию. Какую именно - тебе должно быть виднее.
Можешь просто в список сложить.
Если нужно будет по уникальному имени быстро искать нужный сокет - используй Dictionary (или ConcurrentDictionary)
https://docs.microsoft.com/ru-ru/dotnet/standard/collections/hashtable-and-dictionary-collection-types
dedot сделает тебе читаемые названия, но они будут типа ns123, class100, property12.
И так далее, а так судя по тому что ты смотришь, я бы предположил что это либо какая-то оптимизация как в json.net, либо автор намерено запутал код так что без литра в нем не разберешься.
Массив байт что преобразую не меняется и полностью сформирован до преобразования.
Сами циклы выглядят
Parallel.For(0,10000,i => {
for (int j = 0; j < 10000; j++)
А запись происходит
var index = (i 4) + j stride;
ptr[index] = color.B;
ptr[index + 1] = color.G;
ptr[index + 2] = color.R;
ptr[index + 3] = color.A;
С обычным For все отлично, с параллельным бред выходит, объясните почему так?
Ведь по факту чтение потокобезопасно, а запись здесь происходит в уже готовый массив по готовым индексам, 2 раза в одно и тоже не запишет, откуда вылезают шумы?
Нельзя писать в один и тот же массив одновременно. Даже если ты используешь потокобезопасную коллекцию там writerlock
Аноны, поясните за логику работы экземпляров и зон видимости (вроде это так называется).
У меня есть библиотека WebSocket4Net. Если я использую WebSocket ololo = new WebSocket() в цикле, то я получу хренову тучу экземпляров самой библиотеки. И смогу обращаться к тому говну, что есть в этой самой библиотеке. Типа к ее методам, классам гетерам и прочей байде, что меня не очень устраивает.
У меня написан собственный класс в котором находятся методы использующие методы из библиотеки, а так же обработчики событий находящиеся в библиотеке.
Суть там в чем. В методе конект, например, у меня содержится код типа.
Conect()
{
WebSocket _websocket = new WebSocket(url, cookie) //создание экземпляра класса из библиотеки
_websocket.Open(); //использование метода из библиотеки
_websocket.+= (a, b) => {} //подписка на событие из библиотеки
}
Так вот вопрос в чем. Если я в цикле создам несколько экземпляров класса и вызову для каждого метод Conect(), то смогу ли я к каждому экземпляру созданого WebSocket _websocket обращаться или шарп на каждой интерации цикла будет "подменять" значение _websocket?
Гуглил, но нихуя в локике работы не понял
>Так вот вопрос в чем. Если я в цикле создам несколько экземпляров класса и вызову для каждого метод Conect(), то смогу ли я к каждому экземпляру созданого WebSocket _websocket обращаться или шарп на каждой интерации цикла будет "подменять" значение _websocket?
for (i=0; i<x;i++)
{
var socket = new Websocket();
socket.ConfigureShit();
ListofSockets.add(socket);
}
Пожалуйста, список текущих сокетов
Не. В том то и дело, что мне это не подходит, так как дает доступ только к классам библиотеки, а мне нужно получить доступ именно к коему классу в котором используются методы библиотеки
Т.е. есть класс
class WsClient
{
Conect(){...}
}
Если я в цикле создам
var WsClient = new WsClient
List.add (WsClient);
А потом обращусь к листу
List[0].Conect()
То как будет обработан экземпляр
WebSocket _websocket = new WebSocket(url, cookie)
который находится в методе Conect()
Его будет перезаписывать для каждой интерации или он будет обрабатываться по логике приватной переменной. Т.е. для каждого экземпляра будет своих, хоть и будет иметь одинаковое имя
Я туплю сегодня и не совсем понимаю вопроса. Если class WsClient есть обертка, а тебе нужно напрямую работать с тем, с чем обертка работает, тогда правь обертку на возвращение инстанции класса через out keyword
>тогда правь обертку на возвращение инстанции класса через out keyword
Нихрена не понял.
>не совсем понимаю вопроса
Вопрос в следующем. У меня есть задача реализовать подключение нескольких сокетов в цикле. При этом таким образом, чтобы я мог управлять каждым сокетом по отдельности. Т.е. закрыть его или отправить какую-то информацию через конкретный сокет.
В библиотеке есть методы типа open, close и прочее. И есть набор событий. Типа Opened, closed, MessageReceived. Вот для использования всего этого говна у меня написан класс в котором я использую это говно из библиотеки. Т.е. подписываюсь на события и обрабатываю их.
Так вот. Ко всему содержимому библиотеки можно получить доступ через WebSocket _websocket = new WebSocket(url, cookie). И сейчас в классе у меня просто обрабатываются события из экземпляра _websocket.
А мне надо создать в цикле кучу конектов к сокетам при этом, чтобы с каждым из созданных сокетов я мог использовать созданный мной класс и методы
Просто заместо
Conect()
{
_websocket.Open(); //использование метода из библиотеки
_websocket.Opened += (a, b) => {} //подписка на событие из библиотеки
}
будет
Class WS
{
List<WebSocket> sockets = new List<WebSocket>();
Conect(int i)
{
sockets.Open(); //использование метода из библиотеки
sockets.Opened += (a, b) => {} //подписка на событие из библиотеки
}
}
Чего?
Посмотри тут стартовые видошки.
https://mva.microsoft.com/
Может оно тебе вообще не понравится.
Бампанем немножечко!
Говорю же, добавляй в словарь сокеты, потом по ключу их вытаскивай.
Тебе шашечки или ехать?
Есть
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
Есть куки из браузера вида
_ga=GA1.2.692202593.1520536038; lang=en; _gid=GA1.2.336581328.1522121582;
Как мне отдать их в запрос. Если тупо использовать request.Headers.Add(cookies); то сайт говорит, что я не авторизован, в сети пишут типа эти куки нужно засунуть в кукиконтейнер и использовать его. Но я не могу понять как именно их туда засунуть.
Дайте советов мудрых
А не. Извиняйте. Это я аутист. Надо было еще рефер отдать. Без него сайт думал, что я не авторизован. Странная система в целом то
С проектом все нормально, в vs2010 запускается на ура (через зеленый треугольник).
Проект писан не мной, моя задача - просто перенести его с одного сервера на другой. Но опыта с виндосерверами у меня вообще ноль, а помочь некому (тиммейты вообще не в курсе, как что).
Короче, я в тупике. Гугл выдает кучу всего непонятного, большая часть из которого не имеет отношения к моей проблеме. Кто знает, куда примерно копать?
Проблема решена созданием пользователя с определенным именем и паролем.
Появилась новая проблема. Есть у меня билд-сервер с Teamcity, с которого надо перегонять систему на продакшен (Windows Server 2012). И все бы ничего, если бы не надо было удаленно запускать экзешник на этом самом продакшене, который обновляет структуру БД. Раньше все было на одном серваке - проблем не было. Теперь же экзешник запускается (и работает) только при запуске непосредственно на продакшен-сервере, либо через расшаренную папку (в проводнике, блин). Teamcity не хочет его запускать от слова вообще, как бы я не модифицировал команду. Иногда даже пишет success, но на деле ничего не отрабатывает. Подскажите плз, как его обуздать?
Да, качай пакет и зависимости и устанавливай из локального репа цказанного в настройках
Спасибо, правда, я, вроде, пробовал добавлять в настройках локальный реп и нихуя не получалось, попробую еще поковырять
В крайнем случае можешь просто в проекте рефы на либы из нюгета распакованного завести и все.
https://msdn.microsoft.com/en-us/library/bwabdf9z(v=vs.110).aspx
>охуенная штука
>линкью
Оно под капотом по List<T> обычным форичем ходит. Это ж лишняя жопоебля с созданием/уничтожением итератора. :(
Читал на со простыню ответ по поводу форича вс фор в листе, так вот в листе форич всасывает дико по скорости
можете не перетруждаться,сам решил
Это копия, сохраненная 15 января 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.