Это копия, сохраненная 11 июня 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Шапка: https://github.com/CSharpShapka/SharpHat/wiki
Предыдущий тред: https://2ch.hk/pr/res/967207.html (М)
тебе надо проекты подключать, а не решение
Кто не понял, это удаление студии. Не ведитесь на Установка.
Грубо: солюшн = набор проектов
>ООП-язык и там объекты с состояниями и семафоры и Interlocked
>Что же нам почитать о многопоточности-то, йобаннный насрать
Джо Армстронга почитай, Erlang-тред вон рядом -->>
В общем убил процесс и удалил через https://github.com/Microsoft/VisualStudioUninstaller/releases
Была такая же трабла. В итоге пришлось качать специальный удолятор студии.
str = "68 65 6c 6c 6f";
На нормальном языке там написано "hello". Так вот, как мне получить нормальную строку из этого? Чтобы было нечто вроде:
strNorm = str.ToNormalnayaStrokaBleat(str);
из исходной строки тебе удел сотворить массив байт. это гуглится. а потом с помощью Encoding это все превращается в литерал
У меня есть байтовый массив. Я сюда пришел после гугления.
Таки выгуглил вот такое
String strNorm = System.Text.Encoding.UTF8.GetString(str);
Но в текстовое поле нихуя не выводится, и что-то мне кажется, что дело в неконвертируемых символах. Например, вот реальный байтовый массив:
00-4B-00-61-00-74-00-4C-00-69-00-6C-00-4C-00-69
Сайт http://www.unit-conversion.info/texttools/hexadecimal/ мне его конвертирует, а программа нет. Что не так?
у тебя там аски символы? для ЮТФ8 аски символы не требуют двух байт, откуда там у тебя нули?
>>985966
UTF8, но другая программа отдает с нулями. Удалил нули и все заработало, но теперь у меня в два раза больше массивов, некрасиво ( ̄ヘ ̄)
в шарпе дефолтные кодек для юникода UTF-16. попробуй юзануть System.Text.Encoding.Unicode он должен схавать твое строку с нулями.
ты объяви переменую снаружи и юзай ее внутри цикла, после выхода из цикла, она все еще будет доступна на уровне зоны видимости метода.
Нифига. Первый пик - объявляю до цикла. Второй пик - определяю размер внутри цикла. Третий пик - пытаюсь пользоваться после цикла, выдает ошибку, что массиву ничего не присвоено.
Что не так?
вот такой джентльменский набор пойдет?
Ты сам все видишь на скринах. И да, весь алгоритм работает, все переменные заполнены правильными данными. Но как только я пытаюсь получить доступ СНАРУЖИ к этому массиву, я получаю ошибку.
Но ты мне так и не сказал, как объявить безразмерный массив ПЕРЕД циклом, и как ВНУТРИ уже задать размер.
и какой кондишн для создания массива в цикле?
>>986003
Угадай, лол. Инт конечно, что же еще
я на шарпе не пишу, но если это реально солюшн для твоего случая, то все с этим языком понятно.
>>986016
Я как бы тоже не пишу на шарпе, но кроме нас тут никого нет, чтобы подсказать. Вполне возможно что и говнокод.
скорее в твоем цикле из-за кривого условного оператора, массив никогда не создавался.
>>986023
Говнокод не из-за языка, а из-за того, что простые фундаментальные вещи не изучены. Нахера юзать массив если в цикле идет расчет количества элементов для него, тут напращивается список связанный юзать, а потом конвертить его в массив, и не ебать мозги.
>список
У меня байтовый массив, я ебал вводить еще и списки с конвертацией, если это вообще возможно.
>скорее в твоем цикле из-за кривого условного оператора, массив никогда не создавался
Создавался и работал. Еще раз посмотри на скрины, третий пик если поставить в цикле, то все работает, а если снаружи, то нет >>985993
Я сейчас пишу аналогичный упрощенный код, специально чтобы показать. Дай пару минут.
Два человека другого решения не нашли.
Вопрос был в том, как назначить размер массиву внутри цикла/условия, чтобы снаружи к нему был доступ. Решение я нашел такое, как ты видишь в коде, но оно очень похоже на говнокод и другой анон с этим согласен. Проверяй, правильно ли выделяется память под массив и можно ли менять размер на ходу, как это происходит в коде.
проблема в том, что в шарпе byte[] gavno, не равняется byte[] govno = null. в первом случае компилятор говорит что пременной не существует, во втором все ок. Вот такой парадоркс.
Хочу предостеречь вас, СИШАРП это говно. Разбирать чужой код, ебашить свой это такая запара вы себе не представляете.
Одно дело смастерить сайтик самому или по туториалам, другое дело разбираться и поддерживать написанное кем то.
Пока у вас есть время учитесь электрике, сварки, рисованию, а программирование уже не то, кодеров как собак нерезанных и хуй с ним свалишь за бугор если не гений (это не про двачеров).
С проектами на других языках получше обстоит дело, но тоже такое.
Хохлы и индусы демпингуют рынок, фриланс в 2к17 уже не работает.
Мыкола и Кумар готовы за 1$ в день ебашить и жить на мамкиных харчах на аутсорсе.
Всё сугубо индивидуально, можно про любой язык так сказать. Лично мне .NET платформа нравится, всё лаконично, аккуратно, просто.
Разбираться в любом коде тяжело, если его даун писал. А в написанном по всем конвенциям просто сказка.
>учитесь электрике, сварки, рисованию
Батя уже научил. И вообще, лучше взаимодействию с людьми учиться.
>Хохлы и индусы демпингуют рынок
Хуйню сморозил. От укров уже отказываются, если не очень большие конторы, вроде ебама или ссыклума. А индусы не деемпингуют рынок, они САМИ являются рынком. Вспомни мелкомягких.
>Одно дело смастерить сайтик самому или по туториалам, другое дело разбираться и поддерживать написанное кем то.
Эскобар.жпер
А что есть создание по туториалам как не разбирательство в чужом коде? Разница, как по мне, в том, что в туториалах тебя за ручку, как в музее, водят, всё показывают и рассказывают. А поддерживаешь чужой код уже сам, у нищих слуг нет!
>С проектами на других языках получше обстоит дело, но тоже такое.
Нифига. Что в жабе, что в похапэ сейчас то же самое говно, что и сишарпе - куча макак, а те труъ-программисты, что есть, просят слишком много бабла.
Итого - ты сморозил хуйню.
Там был не именно немецкий символ, который я тут в тексте вставил, а какой-то другой.
Ставь лучше студию. Привыкай сразу к хорошему.
А кто хочет? Ебучие индусы в последнее время настолько охуели, что совсем софт не оптимизируют!
Ну не начинай, я только половину прошел. Что за логин?
Во-первых, залогиниваться необязательно. Это нужно для Azure.
Во-вторых, теперь ещё несколько часов устанавливать студию. Мучайся.
ясен хуй, идиотов ищите дальше.
Разбей ебло провайдеру за говно вместо интернета.
И себе тоже - за то, что такой дебил и нищеброд.
>за то, что такой дебил и нищеброд
Вариантов нет, в моей мухосрани в западной германии есть только один провайдер.
>Сейчас проверил, на 15 студии всё заебись.
Напиздел ты мне, ничего не работает, только зря ставил VS.
Байтовый код 42 61 67 67 EF, что равняется второй пикче.
Ну что, шарпаны, решение будет?
Вот там код https://dotnetfiddle.net/#&togetherjs=6wd3d32SH8
Придумайте, как выводить французскую букву в текстовое поле.
Лол, я думал ты про IDE говоришь.
Скинь свой код, где ты конвертируешь.
Формы нормально с utf работают, см. пикрелейтед.
вот по ссылке сюда и скинь его >>986191
string my = "МАМА ПАПА ЕСЬЖИ"
Как проверить каждое слово на совпадение (разделитель пробел) с файлом-словарем (построчно написаны слова)?
На выходу хочу получить вывод в сонсоль:
СОВПАЛО: МАМА
СОВПАЛО: ПАПА
НЕ СОВПАЛО СОВПАЛО: ЕСЬЖИ
Тебе надо расшевелить мозги и придумать алгоритм самому
Из инструментов это "операции со строками"
Я бы подумал, но мне лень. Надо ведь красиво придумать, а не ебнутый алгоритм типа
"Ага, начало строки, значит, начало слова. Считаем до пробела, сравним. Падажжи, а если знак препинания?"
>>986281
Загнул ты, тут всё проще.
[CODE]
string my = "МАМА ПАПА ЕСЬЖИ";
string[] words = my.Split(' ');
string[] list = File.ReadAllLines("путь");
foreach(string word in words)
{
if (list.Contains(word))
Console.WriteLine("СОВПАЛО: " + word);
else
Console.WriteLine("НЕ СОВПАЛО: " + word);
}
[/CODE]
Для выебона можно так Console.WriteLine((list.Contains(word) ? "" : "НЕ ") + "СОВПАЛО" + word);
Один хуй макаба похерит разметку, лови так: http://rextester.com/BCWFS8547
Можно любой топорный аолгоритм.
Знаки препинаний исключены
Слово может быть одно (то есть без пробелов)
Спасибо! Не мог бы ты пояснить за 17 строчку
>string[] list = new string[]{"МАМА","ПАПА"}; // File.ReadAllLines("путь")
Для простоты вбей пожалуйста файл 1.txt (он будет рядом с экзешником)
Ну и какой пидор вытер весь тестовый код с конвертацией пока я спал? Ебать, ублюдки. Теперь буду давать pastebin, сами компилируйте у себя.
>>986231
По ссылке и был мой, где я конвертировал, пока его не вытерли. И я же дал байтовый код, нахуй мне эти вручную прописаные буквы с бекслешем? Мне нужно конвертировать на ходу. Вот пастебин https://pastebin.com/fzekvCcf и на скрине результат компиляции.
>Студия очень тяжелая, ставить её также очень долго, вплоть до нескольких часов. Но оно того стоит.
Оно нихуя этого нес тоит. Сижу на 2010 с решарпером. Никаких проблем. Ставится мгновенно, весит мало. Ни единого разрыва.
Гавно в данном случае ты.
Иди читай про область видимости переменных и всего, что с ними делаешь.
как дойдет, почему на скрине unassigned, приходи снова.
в любой книжке по любому языку программирования это упомянуто максимум в 3 главе[/sploier]
Дурак в данном случае ты. В коде идет обращение к элементу по ииндексу. А теперь скажи мне, есть ли у null индексы?
харош хуйню нести, сначала область видимости, теперь индекс. Ты прочитай о чем люди писали, а потом уже умничай.
В голос.
Люди понаписали что у тебя говнокод. Мне непонятна задача. Если ты ее мусолишь на протяжении нескольких потов постоянно кидая линк на исходик, то захуярь в исходник комментарии с сутью. А так ты показываешь говно, и тебе отвечают, что это говно.
https://dotnetfiddle.net/#&togetherjs=rMlV8O150l
вот PoC если закмоентить Byte[] member1Name = null; и раскоментить Byte[] member1Name;
то код перестанет работать. Это специфика говно языка. Объяви переменную, затем обязательно присвой значение, видимо для строк и интов индусы предусматрели значение по-умолчанию, а вот для массивов нет.
возьми любой статический типизированный интерпретируемый язык, и там это правило всегда работает.
Ну чтож, начнем перечислять где ты хуй:
1 - индусы тут вообще не при делах. язык писали белые люди.
2 - если в твоих руках что то перестает работать, то проблема может быть в том числе и в тебе
3 - как уже написали ниже, какое значение по умолчанию может быть у массива?
картину топографического критинизма дополняет твой ответ. Да, значение null. Но ты берешь не просто сам массив, а его элемер со смещением [0] от начала последовательности, которая null. И кто снова хуй? Ты снова хуй.
Покажи мне язык в котором к неинициализированному массиву можно обратится с конкретным индексом и он не пошлет тебя на хуй.
>как во всех нормальных языках
>любой статический типизированный интерпретируемый язык
топ кек
да я уже все перепробовал и переменную пробовал и line и строку
У тебя явные проблемы с фундаменталкой(поучи теорию языков программирования), а белый люди, который этот язык проектировали, кроме как индусами называться не могут.
В неинтерпретируемых языках значение по умолчанию не определено, в таких языках как си шарп, неинициализированная переменная это эксепшн в рантайме, а не в момент компиляции. Хорошая попытка анализа перед компиляцией, но нет это не работает.
Читаю комментарии в твоем коде и мое лицо расплывается в улыбке.
>Дело в том, что шарп не может точно понять будет ли в результате выполнения цикла массиву member1Name присвоино какое-либо значение.
короче надо, чтобы 100% присваивалось какое-то значение, а в цикле оно может и не присвоится.
Вот тут у нас самый настоящий говнокод вышедшей из говноалогоритма. Нормальные люди, если подозревают, что переменная может не инициализироваться в некоем цикле или методе, добавляют проверку на null перед работой с этой переменной. Это считается правильным. Ты же строишь цикл в котором переменная не инициализируется (присвоения значения null это так себе инициализация) и удивляется что компилятор тыкает тебя носом в потенциальную необработанную ошибку.
Да да конечно, не тот язык, не те разработчики не тот программач. Ну так мы тебя не держим.
>поучи теорию языков программирования
Мне некогда учить теорию, мне достаточно практики. Пока мои программы работают и я получаю за это зарплату мне позуй и на теорию и на индусов. А ты можешь читать что угодно. Будет на одного диванного теоритика больше.
ты можешь объявить переменую с массивом, назначить ей нуль потом обратиться к ней по индексу и это компилятор схавая и упадет при запуску с нул рефренс эксепшеном. Так почему же тут он не остановил компиляцию?
Это комментарии по втей ссылке, значит ПО УМОЛЧАНИЮ они твои. И ты ПО УМОЛЧАНИЮ ХУЙ. Видишь как это работает?
Ебать ты даун, там большая часть комментариев не его, и код не его.
мимоавтор того поста со ссылкой, который не принимает участия в сраче
я подозревал, что в шарпе коммюнити состоит в основном из быдла и недоучек. Многое подтверждается.
Как по нажатию на кнопку сменить эту кодировку в читабельный вид?
Выяснил лишь что это ASCII, а для читаемости надо ISO-8859-5
ты такой же тупой, как и компилятор си шарпа, вместо того, чтобы посмотреть ниже и найти присвоение, вываливаешь говно на стол.
Тебе надо именно перекодировать тот текст что уже в текстбоксе? Не проще ли сразу считать в правильной кодировке?
как там в мухосранске, совсем скучно, каждый день говно ем, а тут такой случай потролить о хуйне.
Решение номер раз:
var hui = new hui();
Переменная инициализирована и готова к приключениям.
Решение номер двас:
if (hui != null)
Вот только в этом случае что то делается. Что было с переменной до этого пообще похуй, компилятор ругаться не станет.
Byte[] member1Name = null;
for (int i = 0; i<99; i++)
{ member1Name = null }
Console.WriteLine(member1Name ?? "Ты хуй!" : member1Name[0]);
за что тебе платить то? ты даже суть проблемы не понял. так что лучше пожри говна, пока сеньоры общаются.
Вопрос стоял в объявлении до того, как узнаешь размер, а не в использовании массива. Так что тут еще как посмотреть, кто тупой.
Тупой снова ты. Нельзя объявить массив не зная размера. Либо ты создаешь переменную, которой потом присваиваешь массив, либо ты хуй неумеющий в программирование.
>>>986393
а вот и нельзя. компилятор начнет выебываться, что переменной нет.
В данном конкретном примере ничего не изменится. Но ты можешь еще попритягивать за уши свои фантазии.
>>986397
Кто сделал? Что сделал? Давай свой аргумент, а я пока поищу картинку со смеющимися няшками.
нельзя просто обьявит Byte[] member1Name; об этом и был весь срач выше, я же говорил, что ты даже суть проблемы не уловил
Ну ты так охуенно объясняешь, что сути не видно. Но в чем проблема то? Объявить переменную можно когда угодно. Можно целый метод запилить возвращающий массив байтов и присвоить его результат переменной. Что тебя так беспокоит то?
string govnotext = "@825B" // Привет
Как мне его превратить в нормальный читаемый вид?
В 17 студии хорошо зделоли, там можно не качать гигабайты, и возможна минималистичная установка.
Не знаю как сейчас, но в RC был тормозящий лагодром. который сперва 20 минут трещал диском, потом начал что то докачивать из интернета и только сожрав 7 гигов предложил что то выбрать.
тока проблема, убогую десятку не хочу ставить.
:(
Какие таймеры? Помню в глубоком детстве, когда я только начинал в вижуал бейсике, там был элемент, который я перетягивал на форму и у него уже были ивенты. А тут я такого элемента не вижу, поэтому и спрашиваю.
>там был элемент, который я перетягивал на форму и у него уже были ивенты
И назывался он Timer
Автопроперти юзай чтоле, 2k17 всё таки.
Что тебе нужно то? У тебя мейн пустой, что тебе в него вписать то надо?
Чому?
>>986295
>>986310
Ты много ерунды налепил, дружище. Надо подучить основы.
Вот так должно быть http://rextester.com/TXYCI17007 добавил комменты для тебя
>>986294
Балда, я и вытер, там уже каша была с говном.
Вот твоё решение, такие символы в utf8 имеют длину 2 байта https://dotnetfiddle.net/aKlFs9
Сверяйся тут http://www.fileformat.info/info/unicode/char/00ef/index.htm
>>986337
В тех комментах общался я и анон автор, потом решено было общаться в чатике, ибо хер разберёшь кто что пишет. Анон спрашивал, почему компилятор ругается, что переменная не инициализированна, хотя в цикле при каком-то условии он её инициализировал.
Дело в том, что компилятор на момент компиляции должен точно быть уверен, что переменная будет проинициализированна.
И ты, анон, путаешь инициализацию с объявлением. Это две разные вещи.
byte[] array1; // объявление
byte[] array2 = null; // объявление с инициализацией
array1 = null; // инициализация естественно не обязательно null
Переменную array1 перед использованием нужно проинициализировать.
>>986358
>>986402
кидай код получения текста.
>>986433
Ты хоть начни делать, а потом вопросы задавай. За тебя тут лабы делать никто не будет.
Ссылка http://eu-bns.ncsoft.com/ingame/bs/character/data/abilities.json?c=pisos возвращает контент в браузер за 54мс.
Та же ссылка, но с client.GetStringAsync(http://eu-bns.ncsoft.com/ingame/bs/character/data/abilities.json?c=pisos) возвращает контент в переменную за 4 секунды. Прокси выключены UseProxy = false.
Как починить сломанные нахуй http запросы в C#?
>>986453
>Сверяйся тут http://www.fileformat.info/info/unicode/char/00ef/index.htm
ЛОЛ. Ты понимаешь, что эти байты мне отдает другая программа, я их не пишу лично? И тот символ имеет байтовое значение 0xEF, смотри второй скрин >>986187
В таком случае ты получаешь не в utf-8 а в utf-16
После после каждого полученного байта вставляй 0 и будет тебе счастье.
https://dotnetfiddle.net/aKlFs9
Писечка в том, что в шарпе нет Encoding.UTF16 такой кодировки.
На самом деле я решил проблему еще вчера и написал новый код с комментариями от своего имени, но всё это кто-то стёр. Правильная кодировка это Encoding.GetEncoding("ISO-8859-1"), так что эту тему можно было бы закрыть еще вчера.
> ISO-8859-1
лол, так чего сразу не написал то?
Алсо, есть там utf-16: Encoding.GetEncoding("UTF-16")
>Продолжаю пытаться в http запросы.
Один экземпляр WebClient не поддерживает параллельные запросы.
Гугли HttpWebRequest, HttpWebResponse это более нативная хуйня
Не мешало бы тебе скинуть код посылки запроса. Вангую ты каждый раз WebClient создаёшь.
У меня client.DownloadStringAsync и client.DownloadString работают примерно одинаково - 150-250мс
>лол, так чего сразу не написал то?
Ну так я и не знал. Как разобрался, так сразу и поменял код. А потом кто-то его удалил.
>Один экземпляр WebClient не поддерживает параллельные запросы.
Нет, у меня не вебклиент, а это:
var httpClientHandler = new HttpClientHandler { UseProxy = false };
HttpClient client = new HttpClient(httpClientHandler) { MaxResponseContentBufferSize = 1000000 };
Клиент и правда каждый раз создаю, но проблема в том, что у меня постоянное обновление, я пока еще не придумал, как создать один раз и передавать.
Алсо, эта проблема решена. Я проебался и у меня на прокси стояло true вместо false.
Объявил клиент глобально - отсосал у отладчика. Локально все работает. Комиляция без ошибок.
>кидай код получения текста.
http://rextester.com/YETR72168
Это стеганография, получаю текст, спрятанный в последние два бита пикселей.
Получать байтовый массив и конвертировать его в любую кодировку https://dotnetfiddle.net/aKlFs9
>в глубоком детстве,
А потом он забыл, что такое область видимости переменной, и решил посрать на всех на дваче )
Нету в си шарпе визуального компонента таймер с событием. Но есть нечто другое, менее визуальное.
Но для начала таки с областью видимости разберись, ага )))
>который не даже отдебажить не выходит
Потому что теория си шарповых тредов - это 20 страниц умного текста. Тут в мозг нужно уметь думать, а не изо рта срать.
Тебе помочь погуглить, дочка?
>ага )))
>>986502
Госпаде, какие же все-таки дауны сидят в /pr, у которых пелена обиды застилает глаза. Иди чини детектор, можешь даже погуглить что это такое ))), я не писал про области видимости и прочее.
Отъебись от меня, даун. Зарепортил.
Как оказалось я кусок задания не написал(класс Person). Но это мне не сильно помогло.
Как я понимаю у меня нихуя не работает Employee для доступа к полю со списком работников.
Впрочем походу неправильно работает и сам Employee, два раза выдает результат(обведено)
Так же не работает список работников (пустой)
Так же не понимаю как делать это.
1. свойство типа Person (только с методом get), которое возвращает ссылку на рабочего с самой ранней датой приема на работу; если список рабочих пустой, свойство возвращает значение null;
2. индексатор булевского типа (только с методом get) с одним параметром типа Form; значение индексатора равно true, если значение поля с информацией о правовой форме совпадает со значением индекса, и false в противном случае;
3. метод void AddEmployee(params Employee[] employees) для добавления элементов в список рабочих;
В main я вроде как сделал пункты 4.1 и 4.3, но насчет последнего не уверен.
https://dotnetfiddle.net/Au0rS1 <-мой код.
>Так же не понимаю как делать это.
Что конкретно ты непонимаешь? Опиши своими словами что ты хочешь от нас?
Не предложу, пока ты не покажешь функцию, в которой ты получаешь "@825B". Не с клавиатуры же ты вводишь "@825B", да?
Сорян, не увидел, что ты уже выше бросал код.
>Предложи мне костыль, который переконвертирует уже готовую запись вот тут
Костыля нет. Что бы знать во что конвертировать нужно сперва узнать из чего конвертировать. Этот исходный текст у тебя в какой кодировке?
Предположу, что код у тебя неверный, вместе с функцией reverseBits. Переделывай пошагово начиная с 25 по 56 строки http://rextester.com/YETR72168
1 я понимаю что нужно делать с помощью DateTime.MinValue, но постоянно пишет что невызываемый член не может использоваться как метод, либо что не существует в данном контексте
У остальных пунктов аналогичная ситуация, я их начинаю (public Form this[int index] и public void AddEmployee(params Employee[] employees) соответственно), а дальше здоровенный хер на весь экран. Гуглеж не помогает, всё что нахожу абсолютно не похоже на то что я делаю.
>1 я понимаю что нужно делать с помощью DateTime.MinValue
Давай непонимать вместе. Нахзуя тебе вообще сдался DateTime.MinValue? Не видел у тебя в задаче зачем он нужен.
> (public Form this[int index] и public void AddEmployee(params Employee[] employees)
Эта строка представляет собой какой то пиздец. Не знаю что ты ими хочешь описать но думаю, что хер это один из возможных результатов.
Я так и не понял что у тебя неполучается. Если ты не выучил синтаксис языка, но уже надо решать на нем задачи, то я могу только посочувствовать.
>Нахзуя тебе вообще сдался DateTime.MinValue?
>с самой ранней датой приема на работу
А это разве не через неё делается?
>1. свойство типа Person (только с методом get), которое возвращает ссылку на рабочего с самой ранней датой приема на работу; если список рабочих пустой, свойство возвращает значение null;
[CODE]
public Person FirstWorker
{
get
{
return _emp.OrderBy(x => x.Work).FirstOrDefault();
}
}
[/CODE]
>2. индексатор булевского типа (только с методом get) с одним параметром типа Form; значение индексатора равно true, если значение поля с информацией о правовой форме совпадает со значением индекса, и false в противном случае;
[CODE]
public bool this[Form f]
{
get
{
return _form == f;
}
}
[/CODE]
>3. метод void AddEmployee(params Employee[] employees) для добавления элементов в список рабочих;
[CODE]
public void AddEmployee(params Employee[] employees)
{
Employee[] result = new int[_emp.Length + employees.Length];
Array.Copy(_emp, result, _emp.Length);
Array.Copy(employees, 0, result, arr1.Length, employees.Length);
_emp = result;
}
[/CODE]
или лаконичней, на linq
[CODE]
public void AddEmployee(params Employee[] employees)
{
_emp = _emp.Union(employees).ToArray();
}
[/CODE]
>1. свойство типа Person (только с методом get), которое возвращает ссылку на рабочего с самой ранней датой приема на работу; если список рабочих пустой, свойство возвращает значение null;
[CODE]
public Person FirstWorker
{
get
{
return _emp.OrderBy(x => x.Work).FirstOrDefault();
}
}
[/CODE]
>2. индексатор булевского типа (только с методом get) с одним параметром типа Form; значение индексатора равно true, если значение поля с информацией о правовой форме совпадает со значением индекса, и false в противном случае;
[CODE]
public bool this[Form f]
{
get
{
return _form == f;
}
}
[/CODE]
>3. метод void AddEmployee(params Employee[] employees) для добавления элементов в список рабочих;
[CODE]
public void AddEmployee(params Employee[] employees)
{
Employee[] result = new int[_emp.Length + employees.Length];
Array.Copy(_emp, result, _emp.Length);
Array.Copy(employees, 0, result, arr1.Length, employees.Length);
_emp = result;
}
[/CODE]
или лаконичней, на linq
[CODE]
public void AddEmployee(params Employee[] employees)
{
_emp = _emp.Union(employees).ToArray();
}
[/CODE]
>Объясни человеческим языком что ты соброался через нее делать.
Он хочет найти рабочего с самой ранней датой приема на работу.
Думает, если вызвать DateTime.MinValue то магические гномики сделают, что нужно.
поди setup/teardown хуёво написан.
Пикрелейтед
>>986525
>>986547
Но в чем вы узрели ошибку? Я понимаю, что могут быть ошибки - но программа работает, причем корректно. Не понимат
Дело в том, что с английским текстом у меня нет проблем, они только с русским. Поэтому исклчена потеря байтов. Через онлайн декодеры я без труда меняю кодировку и получаю свой текст, т.е. проблема исключительно в ней. Неужели нельзя перевести кодировку уже полученного значения в перменную?
>Через онлайн декодеры я без труда меняю кодировку и получаю свой текст
Но на скрине я не вижу ПРИВЕТ, а вижу РИВЕТ, значит первый байт похерился. Ну лично я это так вижу.
Насчет кодировки, можно конечно. Вот на скрине один из вариантов. Только свои кодировки выбери.
Encoding iso = Encoding.GetEncoding("ISO-8859-5");
byte[] asciiBytes = ascii.GetBytes(myText );
byte[] isoBytes = Encoding.Convert(iso, ascii, asciiBytes);
myText = iso.GetString(isoBytes);
Ну ещё можно скачать uninstaller для студии, но есть мнение, что проще диск форматнуть.
Спасибо! Только не всё тут работает.
В первом когда пишу return _emp, он сразу начинает ругаться что не удается преобразовать тип Emploee в Person. Это тут ошибка или у меня до этого?
В третьем перестает ругаться только если я меняю int на Employee, a arr1 на _emp
public void AddEmployee(params Employee[] employees)
{
Employee[] result = new Employee[_emp.Length + employees.Length];
Array.Copy(_emp, result, _emp.Length);
Array.Copy(employees, 0, result, _emp.Length, employees.Length);
_emp = result;
}
>>986622
>>986621
Да, я думал что всё так просто.
> В первом когда пишу return _emp, он сразу начинает ругаться что не удается преобразовать тип Emploee в Person. Это тут ошибка или у меня до этого?
Это мой косяк, я в уме же пишу. дать бы по ебалу тому, кто решил, что сущность человек СОДЕРЖИТСЯ в работнике
[CODE]
public Person FirstWorker
{
get
{
var emp = _emp.OrderBy(x => x.Work).FirstOrDefault();
return emp == null ? null : emp.EmpPers;
}
}
[/CODE]
>В третьем перестает ругаться только если я меняю int на Employee, a arr1 на _emp
Всё верно, это я машинально опсАлся.
Алсо посмотри свой пункт 2, там сказано добавить автореализуемые свойства, у тебя же наоборот.
а кодировки хоть свои подставлял? Там то uft8 и 8859-1
Скинь фразу как массив байт, я посмотрю. Когда вставляешь в пост кодировке идёт по пизде.
>Алсо посмотри свой пункт 2, там сказано добавить автореализуемые свойства, у тебя же наоборот.
public bool this[Form f]
{
get
{
return this.FormForm == f;
}
}
Так?
У меня нет возможности это скинуть, нужно конвернуть уже готовый текст в кодировке ASCII
Как на картинке >>986686 , только в моей программе
Дописал свою тулзу. Она считывает инфу по группе (количество, имена, состав) из памяти запакованной ММО, потом по именам парсит инфу с сайта, потом считает рейтинг и выдает это все в красивую WPF формочку. Работает только с 64битным клиентом, но если не будет лень, то допишу и для 32битного. Я считаю, что вышло неплохо, учитывая, что в шарп я закатился несколько дней назад.
>>986881
Ты не код показывай, а вот эту строку:
string byteMyText = BitConverter.ToString(myText);
Чему равняется byteMyText ?
>из памяти запакованной ММО
Жди бан по hwid
>Работает только с 64битным клиентом, но если не будет лень, то допишу и для 32битного.
Память ведь у всех такая разкая.
>Жди бан по hwid
Совсем дурачок? Игра работает себе отдельно, моя тулза только читает память, никаких длл инъекций. Кроме того, это далеко не первая программа, которая читает память этой игры без последствий.
>Память ведь у всех такая разкая.
Ну вот куда ты лезешь, тварина? Для начала иди разберись в вопросе, а потом пытайся умничать. Да, разная, у 32 свои оффсеты, у 64 свои.
Да так, там где конструктор вместо _pers, _position, _work надо уже поставить имена свойств, а сами поля _pers, _position, _work удалить.
Вообще не вижу у тебя в задании свойства Year, если его там точно нет или я провафлил, то удаляй.
Не обращай внимания на залетного долбоеба.
Заебись сделал, алсо, какую библиотеку для работы с памятью юзал?
>string byteMyText = BitConverter.ToString(myText);
У меня результат получается исходня из результата кучи проходов и циклов - я не могу (хз как) предоставить теперь набой байтов.
Как уже РЕЗУЛЬТАТУ сменить кодировку?
почему? Я ведь пропускаю результат через онлайн сервисы - и получаю нормальную кодировку. Неужели программно это не запилить.
VAMemory. Но оказалось, что она не умеет определять BaseAdress приложения в 64битах, так что тут использую нативную функцию.
По той же причине, что и VB.NET, PascalABC.NET, Delphi.NET, J++, CLR\C++ и проча и прочая.
СТРИНГ НЕЛЬЗЯ ИНТ НЕЛЬЗЯ А ЧЕ МОЖНО Т ОБЛЯТЬ
Operator '<' cannot be applied to operands of type 'string' and 'int'
а как ты собрался сравнивать слово огурец и число 778?
На деле же у меня прога тупит тормозит и в конце мне в счетчике выдает прошедшее кол-во шагов. Как сделать чтобы счетчик плавно увеличивался в самом цикле?
Нахуй это говно. F# заслуживает внимания.
Year там нет по заданию, так что я его удалил.
https://dotnetfiddle.net/KOecU5 в общем тут то что я уже написал в main.
Только вот в первом пункте в var org1 = new Organisation("Васильки",1,Form.OAO, ?); на месте знака вопроса должно быть свойство типа Employee[], т.е. список сотрудников. И я не понимаю как его там объявить.
И пятый пункт не могу вкурить. А остальное я в принципе сделал. Хотя сомневаюсь в правильности написания new DateTime(12, 12, 1990) в 4 пункте.
Спасибо, заработало. Алсо буду очень признателен, если пояснишь за второй пункт. Я только учусь, вычисления надо делать где то в другом месте?
DateTime не правильно. Сначала год, потом месяц и затем день.
массив создавай
Employee[] emps = new Employee[1];
emps[0] = someEmp; // someEmp - работник твой
var org1 = new Organisation("Васильки",1,Form.OAO, emps);
Можешь про BackgroundWorker почитать.
someEmp - это я вместо этого должен ввести данные о первом работнике?
Employee[] emps = new Employee[1];
emps[0] = new Employee(pers2, "Садовник", new DateTime(2006, 1, 21));
var org1 = new Organisation("Васильки",1,Form.OAO, emps);
Console.WriteLine(org1.ToShortString());
Console.WriteLine();
Просто при запуске вот такую хрень что на скрине выдает.
И является ли верным для пятого пункта Console.WriteLine(org1.FirstEmployee);? А то он в программе его не показывает.
Выручи, анончик.
>Ты много ерунды налепил, дружище. Надо подучить основы.
>Вот так должно быть http://rextester.com/TXYCI17007 добавил комменты для тебя
ниработает
лабы делаем
Сорян, забыл файл в utf8 перевести
Мы это продуктовая компания в мухосрани-миллионнике. Не взяли бы, нужны люди с опытом от 5 лет. Джуниворы не создают добавочной стоимости, к сожалению. Легче переучить джависта.
>мы ето прадуктовая компания
На аващебазе адин-асс для прадуктафф праграммируиш. Скока репы и лубка для лаптей завезли а скока спидораны купили ббггее. А ишшо и нада учесць скокмо спиздили тетки-сраки и васяны хех. Ай-ай тяжилов баю бббггее.
>вон выше программку написал.
cпидорылый выбрасил чээлендж ффсей иво сранай жисти. и аккаплишт иво ббггее. ну фсе, жизнь пражита низря, и бегут-бегут офферы из мелкасофта с характерными зокарючками аж самаво балмира ббггеее.
Ещё 3, бля уже 4 года назад работал в одной веб-конторе с весьма богатыми клиентами, где 90% проектов было сделано на .net, кстати ПХПшников и C#-хуесосов было поровну, только первые, как мне тогда казалось, много выёбывались и ничего не делали. Ну это специфика внутри одной конкретной компании, так что не показатель.
Кстати, как только ебанул более-менее вменяемое портфолио из пары проектов на шарпе стал получать еженедельно предложения. Но это всё, повторяю, инфа 4х летней давности, я давно шарпом не занимаюсь, зашёл чисто с ностальгией сюда.
В том, что ты реализуешь бизнес-логику в интерфейсе?
А вообще у тебя точно ретурн выше не дропает раньше? Исключения в трае не вылетают? Пройдись дебаггером и посмотри.
Да какая бизнес логика. Я для себя пишу приложение для работы с VK API. Там все проходит. В том то и дело. Close() срабатывает, а тот метод ничего не делает с основной формой.
потому, что
var mf = new MainForm();
Создаёт новую форму, у которой ты потом авторизуешься и вызываешь метод. После чего закрываешь.
Вангую у тебя уже открыта форма, а ты создаёшь новую. Если так, то тебе нужно получить ссылку на открытую форму.
Синглетон например
Либо передавать ссылку на вторую форму при создании первой через конструктор
Я же не телепат, зависит от того где и как ты обе эти формы создаёшь. Без твоего когда тут никак.
Универсальный же метод это паттерн синглтон
https://metanit.com/sharp/patterns/2.3.php
У меня есть две формы. Одна скрытая. Показывается при нажатии на кнопку на другой форме. Я хочу, чтобы когда я совершал какое-то действие на открытой форме у меня менялся допустим текст у лейбла на той первой форме с кнопкой
Вторая форма MainForm.cs
Уже сам сделал. Долго отвечали :с
Спасибо, братиш, от души
Я мне ещё два года учиться, но специальность с программированием связано слабо.
Как язык шарп очень понравился он у меня первый после паскаля. Разумеется, остановливаться на нем одном не буду, но.. Вдруг я чем-то бесполезным занимаюсь
Заходишь на hh и смотришь.
Java побрутальнее будет. После C++ и Rust такое ощущение, что я пишу на PHP, хотя и тот должно быть посложнее окажется.
>побрутальнее будет
Ну хз. Мне Java вообще показалась какой-то детской игрушкой для обучения детсадовцев программированию. Даже PHP сегодня имеет больше всяких фичь.
Интересно толкование слова брутальный по отношению к яп.
Чтобы сравнивать два разных языка нужно быть тем еще долбоебом, так что скорее ты просто зелень, посему укатись в свой java тред и не сри в нашем.
Пикрелейтед эпичный тред, который я даже схоронил
var matches = Regex.Matches("(.)(.)", "ab")
string a = matches[0]
string b = matches[1]
Так, нашёл Match.Groups
Asp.net
Откуда вы блядь лезете...
Начнем с того, что програмист должен уметь писать алогоритмы программ, а не знать наизусть все операторы конкретного языка. В нашей стране тебя могут послать разбираться в чужом пхп коде, даже если у тебя короче джавапрогера. Тыжпрограммист.
Шарп дохуя похож на джаву, так что всегда сможешь перекатится с минимальнымит ресурсозатратами.
Ты занимаешся чем то бесполезным в любом случае. И какой бы язык ты не осмвоил ты будешь на нем заниматься чем то бесполезным, пусть и за деньгм.
>Шарп дохуя похож на джаву, так что всегда сможешь перекатится с минимальнымит ресурсозатратами.
))
Ну мне лично хватило месяца то бы освоить зарплату джависта.
Не обращай внимания. Тут 80% человек на доске дальше намерений на изучение того или иного языка программирования не идут. Забавно смотреть на дурачков, которые не изучив ни единого языка, не имея никакого представления об алгоритмах, сидят и кукарекают о том, какой же ЯП лучше.
Они начинают лезть в пр с одной лишь мыслью и критерием - деньги. Сегодня им скажут что пхпбляди - сверхлюди и они побегут учить пхп, завтра - наоборот и вот, смотрите, они уже засирают пхп тред за тредом.
ой ой, то есть во время рантайма
Исключения.
File.AppendAllText(@"file", textBox3.Text);
>только не надо мне говорить почему я такой долбоеб
потому, что не умеешь искать информацию в интернете.
Ты не поверишь.
тип проекта - class library
Debug-properties-application-output type
Подари ей шарпея, или сразу присунь шершавого.
Без лоха и жизнь плоха.
Столько годных книг, но нет, не хочу, хочу жрать говно.
>>988420
Не знаешь математику? УЗНАЙ блять, всё в открытом доступе, книг масса, информации масса, бери - не хочу.
ап
> Конкретно на си шарп найти трудно.
Так а мы тебе чем поможем? Вот соберёшься писать сам - тогда приходи.
Нужно реализовать параллельный вывод двух массивов.
Нам предлагают через треды вот так:
https://pastebin.com/V7U4gmiJ
Как это реализуется через async?
>Как это реализуется через async?
Никак.
Асинк не предполагает параллельности.
Тебе еще рано об асинке думать.
Так, скомбинировав ряд примеров вроде получилось. Принимаем сколько угодно проксей, одновременно держим 10 соединений и возвращаем из функции рабочие прокси. Всё происходит в одном потоке насколько я понял. Первый раз пишу на шарпе если что
>Как тогда это реализовать, не используя тред?
>Куда копать?
НИКАК.
Объясни подробно, чего ты пытаешься добиться, и зачем.
>Как тогда это реализовать, не используя тред?
Написать две программы, которые запустит третья программа не дожидаясь океончания выполнения. Это конечно костыль, но зато ты не используешь тред.
>А что, этот метод не получится асинхронно запустить?
Если это консольное приложение, то
>Всё происходит в одном потоке насколько я понял
В корне неверно.
Все происходит в тредпулле.
И вообще, ты дичь какую-то написал.
Потоков все равно будет 2. Просто в разных процессах.
>async разве создаёт треды?
Асинк разворачивает твой код в конечный автомат.
Это макрос такой.
Если у тебя нет контекста синхронизации, то таски запускаются в тредпуле.
В консольном приложении его нет.
В UI приложении это будет UI ивент луп.
Ты зачем полез в асинки не прочитав вначале документацию?
Но почему-то иногда оно срабатывает, что это за фигня такая?
Если же сделать без &&, а тупо после каждого if новый if с проверкой, то может тоже пролететь проверку, но раз в 20-40 реже чем с &&.
Я подумал написать парсер и чекер прокси будет неплохим началам, а тут без асинхронности никуда. Гуем пока не хочу заниматься.
>Объясни подробно, чего ты пытаешься добиться
Нужно написать симулятор рабочего дня сервис-инженера:
https://pastebin.com/JdFHBsvv
Я мельком читал про асинк и думал, что он заменяет тред. И что тред это прошлый век и не используется. Так ли это?
Хотелось бы использовать современные возможности языка c#. Через какое средство лучше реализовать эту задачу?
Привет, бандиты, этот кусок можно как-то сократить?
спасибо :3
Специально сейчас проверил с помощью Thread.CurrentThread.ManagedThreadId
Что при проверке, что во всех свойствах, везде один и тот же ID был.
Но вроде как вот таким костылем удалось решить проблему, ERROR никогда не проскакивает, либо я его еще не поймал.
Обычное задание для нуфагов. Что тебе непонятно?
Выучи то, что дали на лекции, там поясняли по всем этим пунктам, наверняка.
Хочу работать с локальной базой через EntityFramework.
Создал консольный проект; кинул в папку с exe-файлом mdf –базу; через Server Explorer добавил данные в базу; импортировал модель из базы; написал код показывающий данные.
Так вот, если connection string будет с относительным путём, то программа к базе не подключается ("The underlying provider failed on Open")
><add name="Database1Entities" connectionString="metadata=res:///Model1.csdl|res:///Model1.ssdl|res:///Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\bin\Debug\Database1.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
А если connection string будет с глобальным путём, то всё работает
><add name="Database1Entities" connectionString="metadata=res:///Model1.csdl|res:///Model1.ssdl|res:///Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=C:\Users\Anon\ConsoleApplication1\ConsoleApplication1\bin\Debug\Database1.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Как заставить её работать с относительным путём?
Ты хоть пиши какие именно пункты непонятны.
И вообще я абсолютно на 146.0000001% уверен что при желании все это можно нагуглить в виде готовых кусков.
Чувак, по своему опыту скажу, прекращай так учиться, если тебе реально интересен программинг, то сразу уясни, что лекции - говно, ты ничего не запомнишь, в записях ничего не найдёшь, а если что-то пропустишь сможешь винить лишь преподов(не то чтобы они виноваты) и продолжать нихуя не понимать, не забывай что у нас есть гугл, книги, msdn и прочее говно, и гугли не решение задачи, а компоненты решения.
Загугли перегрузку операторов, индексеры, алсо в сишарпе можно проверить является ли символ буквой, цифрой или специальным сивмолом.
https://msdn.microsoft.com/en-us/library/system.char.isletterordigit(v=vs.110).aspx
и иже с ними.
Ну не совсем говно, ладно, полезны, чтобы ты знал что искать, но не надейся что ты все пробелы ими сможешь закрыть и оправдаться что этого вам не давали, когда будет что-то не ясно.
Нашёл, что если указать путь таким образом “|DataDirectory|\Database1.mdf” то работающая программа подключается к базе. Однако, в открытом проекте Model1.edmx перестаёт находить базу.
DataDirectory этот папка где лежит экзешник, а не проект.
>Так ли это?
Нет, не так.
У тебя критикал непонимание конкурентного программирования.
>Через какое средство лучше реализовать эту задачу?
Через то, кокое вам в методичке рекомендуют.
>Мыкола и Кумар готовы за 1$ в день ебашить и жить на мамкиных харчах на аутсорсе.
Мыкола в треде, пилил проект 3 месяца за 10к на окло фриланце, работаю по рейту 20/час(не гривен), друг успешнее - работает за 35 на фриласне+ офис выходит нормально на еду ижизнь в Европе. Но на счет кучи добоебов - это да. Недавно разбирал проект - и это полная пизда, делали два джуно-мидла. И там полная пизда
Что нужно изучить до того, как переходить к изучения синтаксиса?
Дано: веб-примат, 3 года опыта, Python/JS, вышка непрофильная.
Надо: пересесть любыми путями на C# через полгода.
Читаю Албахари, через пару месяцев планирую написать приложение на .Net core + Angular 2/Typescript.
Ваши мнения, советы, критика? Кулстори похожих перекатов очень приветствуются.
>Через то, кокое вам в методичке рекомендуют.
В методичке один тот пример, который выше.
И препод сказал делать как хотим, главное чтобы работало.
Хочется разобраться в этой теме, а не делать через пятую точку.
Полгода это дохуя времени.
Книги это хорошо, но скилл они не поднимают как в игрушках. Если хочешь научится хуярить конкретные вещи, то начинай хуярить прямо сейчас. Придумай сам себе проект и хуярь, а книги используй как справочники.
У всех свой способ изложения материала, например Троелсен только с 3 главы дает синтаксис,
поэтому прочитай первые страниц 100 у каждого, опуская благодарности и нововведения версий C# и выбери кто для тебя доступнее объясняет.
Или может тебе вообще зайдут курсы ITVDN. Я у него посмотрел про машинную математику, а на переменных и типах меня начало пидорасить от его прыжков по коду и фраз типа: "Па-пам!".
Да сам знаю.
У меня помимо собственно переката, основная цель-сойти за начинающего мидла и не потерять в зарплате.
Соориентируй лучше, какие из net-веб-технологий сейчас наиболее актуальны и останутся таковыми в ближайший год? Какие версии ASP.NET (Core/MVC/Web Api/etc) и остального?
Соорентировать тебя яне могу, т.к. сам работаю в другом направлении. Но вот теюе совет - не будь it-шлюхой. Выучи что то одно, но хорошо. Даже если завтра это перестанет быть популярным ты все рвоно останешся специалистом по этому направлению.
Мимо со шлюхой. Свой стэк отлично знаю, хочу идти дальше.
Может быть и так
Mvc последней версии, которая ещё не core, core последняя, веб апи 2.
Плюс платина вроде нинжекта, мока, entity framework.
Годно. Спасибо, анон.
Полностью стирает. Если нужно выполнить в том числе и оригинальный метод, то в первой строке пишут base.MethodName();
Отвеают на наиболее понятные вопросы. Хочешь нормальный ответ - задай нормальный вопрос.
Наткнулся на описание примеров System.Environments и пришла мне в голову идея сделать на винформс пикрелейтед.
Нехватило мне функционала или мозгов и я полез в WMI. Короче с гуглением-таки осилил, но блять это пиздец как далеко от задач для ньюфага.
Посоветуйте где взять задачи для постепенного развития и проработки материала?
Откушу.
2-й квартал ентого года.
public static event EventHandler MyEvent;
как убрать sender из вызова этого эвента?
MyEvent(null, param)
наследовать EventHandler нужно и в базовый конструктор передавать null?
И ещё не понял почему можно написать
button.Clicked += delegate { ... };
но с лямбдой аргументы нельзя игнорировать
button.Clicked += (sender, args) => ...;
Уже отправил биткоины за разблокировку компутера?
@LoroPiana
Да еще ошибка такая тупая, забыл () у метода, возвращающего экземпляр поставить
Не нарушаю ли я смысла singleton'a в этих строчках:
Dot dot = Dot.getInstance();
Dash dash = Dash.getInstance();
Так удобнее наполнять словарик, чем каждый раз писать Dot.getInstance(). Да и на работе программы это не сказалось
Зачем тебе тогда вообще синглтоны, если у тебя локально переменные есть? Какую задачу применение паттерна выполняет?
> зачем тебе тогда вообще синглтоны?
Затем, чтобы был всего один экземпляр.
В моем случае, когда я делаю локальные переменные dot и dash экземпляров получается несколько, и весь смысл паттерна теряется. Тогда стоит или забить на паттерн или писать Dot.getInstance().
Как сделать лучше?
В пользу второго варианта:
У меня есть проигрыватель (он выводит в консольку сообщение) и там тоже тоже нужен экземпляр, чтобы сравнить данные из сообщения с ToString() точек и тире. Можно, конечно, не переопределять ToString(), а просто сделать статический метод, который будет возвращать string с "." или "-". Но тогда смысл ToString() теряется.
Не получается найти красивое и верное решение.
Ты всё усложняешь, зачем тебе хранить точки и тере в точках и тере в виде стринга, нельзя ли просто чар хранить? И ты всё равно плодишь миллионы ссылок, которые весят между прочим инт(64 бита), не легче ли просто представить морзе элемент в виде стринга сразу и сравнивать потом посимвольно или вообще через String.Equal? Тебе и задавать таблицу символов будет легче a = new Element(".-") и писать придётся иф (ch == '.') { код }
Ну и если тебе всё же хочется иметь синглтоны, то храни хотя бы синглтоном набор точек и тере, а не отдельно, типо MorseElement.Dot/MorseElement.Dash, и да, выходит что и тут синглтон не нужен, просто статики, можно с методами чтобы только читать их, просто синглтон для хранения одного объекта это оверкил.
Чтобы обмазаться инкапсуляцией как Пахом сладким хлебом
Допустим, потом я захочу изменить "." на "·" или вообще на "точка", то мне придется проходить по словарю и заменять эти символы вручную. А так я захожу в Dot.cs и меняю одну строчку
>>989855
> можно с методами чтобы только читать их
Вот об этом я сейчас и думаю. Спасибо за советы
Вообще для будущих замен можно сделать буквы как 0 и 1 и потом просто сделать маппер, который будет указывать допустим, что 0 это . а 1 это -, а потом можно переписать в мапере символы если нужно, то есть всё равно можно обойтись без кучи ссылок. И типо тогда ch == Mapper.DotChar, а символы задавать ("01") ну или что-то такого, вот маппер и можешь сделать синглтоном, чтобы можно было и ремапать рантайм и хранить всё.
>Почему эвенты посылаемые из асинхронного метода ломают гуй?
Тому шо менять интерфейс можно только из потока гуи. Тебе нужно тело делегата завернуть в Dispatcher.Invoke
Работает, только Gtk.Application.Invoke в моём случае
Собственно за 2 дня не зная джавы и шарпа получилось сделать вполне рабочую хуиту https://github.com/theanonym/proxy-checker
Понравилось и компилится мгновенно, буду дальше изучать
можно кусок кода привести в качестве примера
Проверяй прокси хотя бы через httpbin.org. Проверяй, не режут ли заголовки и не добавляют ли свои заголовки X-Forwarded-For и не только.
мимо-повелитель-прокси
Прочитай любую довольно общую книгу по сишарпу, в частности про делегаты и евенты и таски с асинх паттерном. Остальное уже библиотеки, гуглятся в инете, ещё обработка исключений тут есть.
Мимокрокодил
Все равно не понимаю эти catch и try, нах они нужны, есть примеры кода для чайников или видео на ютубе?
В ссылках не находит.
В сборках ищи, а не в COM.
ИНКАПСУЛЯЦИЯ, ДЕЛЕГАТЫ, СОБЫТИЯ НОВЫЕ УРОВНИ АБСТРАКЦИИ, НЕТ ЭТО ФУНКЦИОНАЛЬЩИНА, КАРОЧЕ ДЕЛАЙ ДЕЛЕГАТАМИ, ОНИ НЕ ПОДХОДЯТ ВЫЗЫВАЙ СНАЧАЛА СОБЫТИЯ, НЕ ЗАБУДЬ ОБЬЯВИТЬ ИНТЕРФЕЙС СО ВСЕМИ СОБЫТИЯМИ А ПОТОМ УЖЕ ПИШИ РЕАЛИЗАЦИ, ГДЕ ПАТЕРН МВП СОБАКА?! ПИШИ ТЕПЕРЬ ВСЕ ТОЖЕ САМОЕ В ТРИ РАЗА БОЛЬШЕ ЧТО БЫ ВСЕ РЕАЛИЗОВЫВАЛОС ЬВ ПРИЗЕНТЕРЕ.
Чем Rider.
Смогу ли я сделать массив, в котором будет 1000х1000х3 int значений?
нуок
Как бы по одному заходит 0 или 1, и это надо записать. Потом это надо будет перевести в байты.
заходит у него за щеку
держи у себя массив булевых значений, и пускай у тебя в него заходит и выходит то, что и куда надо
Например пользователь вводит в текстбокс не число, а букву, а в коде программы у тебя задумано, что будет число. Соответственно программа крашнется. Чтобы этого избежать делаешь что то вроде
try {
int x = Convert.ToInt32(textBox1.Text);
}
catch(Exception)
{ MessageBox.Show("ИДИ НАХУЙ"); }
Теперь если будет какая то ошибка в блоке try, то выполнится код из блока catch.
Спасибо, даже заюзал сейчас в своей программе
>Поясните, если сейчас в декстопе повсеместно используется WPF
Кто тебе такую хуйню сказал?
>зачем тогда ВС по дефолту предлагает делать декстопный проект в виндовс формах?
Потому что они точно есть повсеместно.
Так ты вопрос задай. Что за поток, каких нулей блять, каких единиц. Тебе 100010003=3млн бит нужно сохранить?
Объясняй нормально и не будут тебе за щёку "закидывать"
Как бы поступает информация по одному биту. Надо её сохранять куда-то, что бы потом этот поток использовать.
Как это лучше всего сделать?
>Как бы поступает информация по одному биту.
Откуда поступает? Покажи код который эту информацию читает.
locate shell32.dll ничего не даёт, значит в моно его нет (стоит последняя сборка от 11 мая)
Гугл ничего не даёт, только упоминания wine, неужели от него зависит monogame?
окна целые для таких анацефалов придумали: Local и Watch. чуть более православно можно мышкой понаводить на переменные в режиме отладки
Помогите C# джуну с практическим проектом.
Суть того что мне требуется.
Есть класс, допустим назовем его Info. В данном классе есть 3 поля. Country, Username, OS. Есть клиент-серверное приложение на асинхронных сокетах.
Мне нужно сериализировать Info в byte[] и отправить от клиента к серверу, а сервер должен десериализировать этот обьект и добавить в Windows форму полученные данные.
Перелистал весь гугол, ничего сорвеменного и нормального найти не смог по сериализации. Какие то кривые непонятные примеры. Прошу помощи анона в направлении на верный путь.
Вот говнокод который я уже написал.
https://pastebin.com/AVPJiQif
Не пойму что конкретно ты хочешь.
Если и клиент и сервет знают как должна выглядеть структура, то проблем быть не должно.
Как реализован сервер? Он уже реализован или еще только в процессе? Через что передается информация? TCP клиент? Заюзать SOAP не судьба?
>Если и клиент и сервет знают как должна выглядеть структура
Я не понимаю как заставить сервер знать как выглядит данный класс (PacketInfo). Он реализован только в проекте клиента, который должен его передавать. Вот тут я думаю.
> Он уже реализован или еще только в процессе?
В процессе. Жду когда придумаю вариант сериализации.
> Через что передается информация?
Обычный Socket, использую асинхронные методы с BeginConnect, EndConnect и тд.
>Заюзать SOAP не судьба?
Не хочется ебаться с XML и тд. Для начала хочу научиться делать это с байтами а потом уже подниматься выше.
У меня прога агрится, когда я 200 000 выставляю.
опять ты на связь выходишь?
Тебе же говорят >>990596
И не думай что раз bool, то один бит занимает. В памяти бул это 1 байт.
Покажи сначала код получения "нулей и единиц".
Можно ли вызывать в производном классе базовый метод, но так что бы он работал с полями производного класса?
Про override знаю. Но нет ли другого способа, чтобы не переопределять?
Реализация такая же, просто данные в полях производного класса другие.
Да, выхожу.
Код получения нулей и единиц показать не могу, но там можно получать только 1 или 0, по одному. Надо эту еболду записать куда-то и потом вытянуть.
>Не хочется ебаться с XML и тд. Для начала хочу научиться делать это с байтами а потом уже подниматься выше.
Пиши на ассемблере в машинных кодах. Хули ты сразу за шаоп взялся.
>Я не понимаю как заставить сервер знать как выглядит данный класс (PacketInfo).
SOAP передает данные о виде пакета, но ты ведь не хочешь им пользоваться.
XML и прочие форматы придумали специально для того, что бы не ебаться с raw данными. Если ты хочешь все делать через соеты, то сам и реализовывай логику. Посылай серверу поток байт сам. И сам думай как сервер этот поток байт должен расшифровывать. Без дополнительной информации сервер никак не сможет понять что за последовательность байт ты ему скормил.
>Код получения нулей и единиц показать не могу
А я не могу тебе ответить как эту поеботу лучше обрабатывать.
Выше уже сказали, что bool это 8 бит. В процессоре нет 1битовых регистров, так что 8 бит это минимум. А в 64 системах 1 бит это 32м бита. Потому что в этом режиме нет доступа к 16 битным регистрам, которые собственно и делятся на две половины по 8 бит. Вот сам и считай когда твоя конструкция превысит 2 гигабайта. И не забудь из двух гигов вычесть несколько килобайт служебных областей.
Нормальные люди такие данные упаковывают.
Я бы упаковал, я как раз спрашиваю, ак лучше это сохранять. Суть в том, что есть изображение и с него надо собрать последние биты RGB, т.е. с одного пикселя будет 3 бита. Вот мне их надо сохранить и потом эту последователность единиц и нулей разделить на части по 8 бит, т.е. в байты.
Примерно так, код слишком большой, что бы его показывать, да и смысла нет.
Вроде всё описал.
>код слишком большой, что бы его показывать, да и смысла нет.
Раз с тебя спрашивают код, значит смысл есть. Наверное не просто так спрашивают.
В шарпе нет такой вещи как бит. Есть только байт. Поэтому очень важно понять что конкретно и как ты получаешь. Достаточно не всего кода, а того самого участка который возвращает этот твой бит. От него уже можо будет отталкиваться.
>Я бы упаковал, я как раз спрашиваю, ак лучше это сохранять.
Биты хранят в байтах. Проще всего это делать на ассемблере командами сдвига. На шарпе скорее всего тоже можно, но я пока слабо представляю как и производительность будет в разы хуже.
Используй стримы, берёшь такой изображение, открываешь стримом, берёшь оттуда немного байтов, берёшь из них что тебе нужно и записываешь в другой стрим, который записыает в другой файл.
>самого участка который возвращает этот твой бит
for (int j = 1; j < imageHeight; j++)
{
if ((imageVanilla.GetPixel(i,j).R) != (imageCrypted.GetPixel(i,j).R)) {
difference[num] = true;
}
num++;}
Вот, там 3 раза повторяется с каждым цветом.
Куда посоветуешь записывать это неопытному человеку?
Биты ты тоже можешь записывать в файл, а двумерную структуру представить как одномерную с умножениями и делениями по остатку, биты в ней по 3 вместе записывать. Файл стрим вроде поддерживает seek() так что вот. И выйдет у тебя типо
pixel(int w, int h, int color) где ты ищешь по файлу (himageHeight + h) 3 + color, колор типо 0 для красного, 1 для зелёного, 2 для синего. Только не забудь что из файла читаются байты, а не биты. Или как-то так.
А вообще если тебе надо по 8 битов записывать, то просто считай i сколько битов ты уже записал, храни byte текущий, OR байт со своим битом, сдвинутым на i, и обнуляй i каждый 8ой бит, который ты получаешь, их и записывай в свой массив, ну или в файл, последний бит не забудь выравнять влево.
Гугл это такое, мне интересно мнение живых людей.
Ебло бы тебе разбил
Вьюмодел не содержит ссылку на реализацию вью и вообще ничего о вью не знает, в отличие от презентера.
Есть одна сборка в виде exe файла. В ней содержаться несколько dll. Мне позареж нужно их оттуда извлечь и посмотреть их код. В гугле был, там всякие мануалы как самому вставлять ресурсы и как потом их из своей программы сохранять на диск. Но мне нужно из чужой программы их сохранить на диск.
Есть идеи?
dotPeek или Reflector юзай,. Ну или как батич сам вытаскивай через рпфлексию
Ты парсишь строку и не ловишь исключения, а в строка у тебя не "312" а какая-нибудь "афц1--_", короче у тебя строка нормально не может быть приведена к инту
TryParse
|---------Заголовок 1----------|
|---------------------------------|
|--подзаголовок1--|--еще----|
Ты хочешь получить ASII код символа, а для этого нужно взять какой-то символ строки и привести к int, например 1-й -
(int)Console.ReadLine()[0]
(Правда на выходе будет unicode код символа и при вводе символа, не содержащегося в таблице ASII, он выведет код из unicode)
где ты эту табличку рисовать собрался, дизигнер комнатный?
>>991133
разделение типов по нейспейсам и наборов логики по проектам людей останавливает только здравый смысл и (не всегда) адекватность. десятки проектов в солюшне и целая ива из внутренних поддиректорий - нормальное дело
Разумеется, стоит. В рамках одного солюшна у тебя несколько проектов: библиотека, веб-приложение, использующее эту либу и тест.
DataGridView
Так вот, как правильно разделить длинный код в шарпе?
Гугли static method
partial, не?
Сам решил вкатиться, вот и расскажи, почему именно шарпач?
Правильней сначала ознакомиться инкапсуляцией и зачем она нахуй нужна.
Хули ты тут забыл, мартыхан?
В методе, который прописан в каком-то классе, нужно обращаться к переменным через this.num или передавать в метод как обычно аргументы void function (int num) {} ?
ты когда пишешь this.num подразумеваешь то шо обращаешься к полю num этого объекта(в котором пишешь)
ну типо ты хуйнул такой класс
class huy
{
private int num;
public void SetNum(int num)
{
this.num(num который private в классе) = num(num которое передаёшь в метод);
}
}
хз вроде понятно написал
пикрелейтед оберточка над SqlConnection
значит нужен конфигурационный файл, спасибо!
Так можно делать, но не следует.
Поля экземпляра класса по-хорошему должны быть обозначены, как private. В противном случае, любая залупа (классы, методы) могут обращаться к ним и менять их значения напрямую.
За это в конторах пиздят палками.
Поэтому пишешь так:
class Worker
{
private string name;
private int salary;
public Worker(String n, double s)
{
name = n;
salary = s;
}
}
>>991351
>name = n;
>salary = s;
Почему тут нет this.name и this.salary, хотя в туториалах учат именно так?
В прикрепленном примере - в конструкторе используется this. , потому что salary уже объявлена, как передаваемая. => при обращении к salary программа будет работать с тем, что передали в функцию. В остальных методах this. опущен, но компилятор поймет, что ты обращаешься к полю и сам его добавит.
Через this. ты гарантированно обращаешься к полю/свойству/методу текущего экземпляра класса. Лучше избегать подобных конфликтов и не писать this для краткости и понятности кода.
Хорошо, спасибо.
Забыл код добавить, фикс:
int[] numbers = null;
for (int i = 0; i<100; i++) {
numbers = new int[i*2];
}
Нет, при вызове new int[] ты выделяешь новую память под массив в куче и numbers ссылается уже на неё. Старый массив соберет сборщик мусора.
(Значения в массиве тоже не сохраняются, если что)
Ну, добавляешь к форме поле
var boxes = new List<TextBox>();
А потом ручками boxes.Add(lblName2) и т.д.
А вообще, погоди минуту, у меня идея получше появилась, чекану и отпишу
http://stackoverflow.com/questions/3419159/how-to-get-all-child-controls-of-a-windows-forms-form-of-a-specific-type-button
Тут норм пояснено вроде
А нет, нихуя. Этот способ судя по всему берет начальные значения текстбоксов при загрузке приложения, и даже если ты потом меняешь текст, то прочитать его нельзя, там пустое значение у свойства Text.
Сорян, это я проебался, там список задом наперед. Вопрос снимается.
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Phone { get; set; }
}
int[] array = new int [3] {1, 2, 3};
или
int[] array = {1, 2, 3};
зы
предпологаю, что 1я запись не имеет смысла, если после указания кол-ва эл-тов я их инициализирую, соотв 2й вариант правильный. Так?
Пытаюсь собрать проект в 10 студии и постоянно вылетает ошибка о прекращении работы resxtoresources exe и нихуя не собирается. В консоли resgen.exe exited with code 532459699, куча таких ошибок. Наставил уже пакетов просто до жопы, сервис паки к студии, куча фреймворков, саму студию разную качал пробовал - все одно.
До этого студит никакие не ставил, с .net можно сказать не работал. Что за хуйня? Как исправить? Гугл не помог, выручай анон, третий день не могу заставить эту хуйню работать.
Ах да, win10 x64, если это имеет значение.
Три варианта:
1) string[] strArr = new string[]
{ "alfa", "betta", "gamma" };
2) bool[] boolArray = { true, false, true };
3) int[] intArray = new int[4] { 1, 2, 3, 4 };
Я часто использую второй вариант.
Проект недавно перенесли с 8й на 10ю, об дальнейших обновлениях речи нет. Кстати конфиги проекта тоже менять нельзя.
Спосиб
вида {"100, 255, 150, 130", "100, 255, 150, 130" }
Могу ли я на канвас их отрисовать? Если да, то как?
про new[] {1, 2} забыл
@
НУЖНО БЫЛО ПЕРЕСТАВИТЬ ДВЕ СТРОЧКИ МЕСТАМИ
Это я дебил или компилятор?
компилятор тут причем если он выполняет код в том порядке, в котором ты его наговнякал?
судя по всему, у тебя катились включение при регистрации биндингов, да?
С тобой все в порядке? Так-то я фронтенд и сейчас меня перекинули на огромную легаси црм ебанину, которой уже больше 10 лет, мне просто ее развернуть локально нужно, а все шарперы в конторе нарасхват. По делу есть что сказать?
Спасибо.
Немного переделал.
Теперь две проблемы - черный экран в не закрывающемся окне, если закрывать окно сразу после вызова без отработки других функций, и поиск.
Можно ли как-то сделать выбор поля Name по которому будет поиск в
var query = db.Users.Where(u => u.Name == str).ToList();
или надо на каждое поле писать отдельный метод?
Без задней мысли, тащемта.
в твоем случае даже для использования рефлексии тебе придется загрузить из базы всю таблицу, а потом пытаться отфильтровать. поиск по конкретно в полю упрется либо в отдельный метод для каждого из, либо создание COMPUTED колонки для таблицы с данными вида (PropertyName|Value)(Property...) или как-то так. но это не проще
Вопрос снят, надо было преобразовывать в инт вне запроса.
Придётся ждать пару лет пока доделают неткор, а авторы Monodevelop полноценную интеграцию с ним. Или пускай студию на неткор портируют. Говнецо на JS которое они выкатили (VS Code) использовать невозможно, про поделки Jetbrains вообще молчу.
Только для неё нужен игровой компьютер, потому что Java абсолютно не подходит для тяжёлых графических приложений, но ничего другого эти макаки не осилили. Хотя вот Monodevelop написан на C# и вполне приемлемо работает на старом ноуте.
VS15 Update 3
Это такой толстый траленг? Я же сказал
>пкм на проекте и Add -> New Item
а не создать новый проект. У меня тоже есть темплейты проекта, мне нужны темплейты айтемов.
Form1 main = this.Owner as Form1;
Кто тут чей родитель? Form1 - родитель Form2 или наоборот?
this.Owner внезапно возвращает null, если ты до этого владельца не назначил.
>>992534
Он идеален.
А в функцию не запихивается?
Через строку в коже конструкции вида:
if (2 != 0)
{
}
Это компилятор как то хитро "оптимизирует" код или это писатель постарался понаписать хуйни чтоб было сложенее понять что там происходит?
Это копия, сохраненная 11 июня 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.