Это копия, сохраненная 1 марта 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
В: Хочу вкатиться, что мне надо делать?
Пиздуй в ява тред, а потом выучи конструкцию {get; set;} и линкью. Все - ты знаешь сисярп чуть лучше хелловорлдщиков. Ну и еще можешь метанит прочитать. А теперь иди нахуй.
В: Ряяя, сисярп тока на винде работает!11! Бджвава лучше!
Гугли нет кор, долбаеб ебучий. А теперь иди нахуй.
Ах да, это второй тред. Забыл в шапку написать.
Есть есть другой метод, назовём его foobar, который бесконечно распределяет ресурсы.
getMutex должен получить от этого метода ресурс и продолжить работу. Сейчас я из getMutex закидываю определённый объект в очередь, которую съедает foobar. foobar решает, что этому объекту пора отдать ресурс и выставляет (там внутри monitor, проблемы с одновременным обращением не будет) у объекта поле в true. В этот момент в getMutex происходит active lock вида
while (!obj.field){Thread.Sleep(10);}
Теперь вопрос: Я хочу, чтобы getMutex получил от foobar уведомление о том, что getMutex может продолжать свою работу. Как это делается правильно?
Вот мне интересно, еблозавры вроде тебя вообще гуглят, прежде чем высрать свой вопрос?
Есть совет прочитать метанит.
1. Что читать по C# в первую очередь, тут есть аналог "Философии Java" Эккеля?
2. Нужны ли какие-либо курсы (помимо литературы и туториалов), если да, то какие? SkillBox и GeekBrains - лажа или нет?
3. Где лучше искать стаж?
Это...
StringBuilder response = new StringBuilder(url);
response.Append(name);
response.Append('?');
Или это...
StringBuilder response = new StringBuilder(url + name + '?');
По идее второй вариант более читаемый и красивый, но тут будет создаваться, наверное, один лишний обьект string, что не есть хорошо. Или же компилятор это соптимизирует все?
Помогите, я в растерянности.
Создай цикл на пол миллиарда итераций и реализуй в нем сначала первый вартант, потом второй. И посчитай время.
СПАСИБО БРАТАН ОКАЗАЛОСЬ ЧТО ПЕРВЫЙ ВАРИАНТ БЫСТРЕЕ В ПОЛТОРА РАЗА
using System;
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
учебник пишет:
Properties allow us to add state to our class. State can be anything which needs to be stored by an instance of your class.
То есть пропертисы хранят что-то
вопрос:
а зачем они нужны, если есть просто переменные?
Пропертисы и переменные это разные вещи?
Или это все подвязано как-то с областью видимости?
Почему я не могу написать так:
using System;
public class Person
{
string FirstName = "имя";
string LastName = "фамилия";
}
using System;
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
учебник пишет:
Properties allow us to add state to our class. State can be anything which needs to be stored by an instance of your class.
То есть пропертисы хранят что-то
вопрос:
а зачем они нужны, если есть просто переменные?
Пропертисы и переменные это разные вещи?
Или это все подвязано как-то с областью видимости?
Почему я не могу написать так:
using System;
public class Person
{
string FirstName = "имя";
string LastName = "фамилия";
}
>а зачем они нужны, если есть просто переменные?
Они заменяют Гетеры и Сетеры, их использовать удобнее и красивее. Поля класса нежелательно делать public, потому-что это нарушение инкапсуляции, в свойстве же ты можешь контролировать поступающие данные.
>Пропертисы и переменные это разные вещи?
В C# поля и свойства это разные вещи.
>Почему я не могу написать так
Потому-что если тебе нужно задать значение по умолчанию которое не будет меняться в будущем то лучше использовать константу. Если же тебе все-таки нужно менять значение, то поступающие данные нужно как-то проверять перед тем как присваивать переменной, например чтобы имя и фамилия человека не могли содержать цифры, тут-то и нужны свойства\гетеры\сетеры, чтобы при поступлении какого-либо значения ты мог проверить его на корректность.
https://metanit.com/sharp/tutorial/3.4.php
Ответ найдешь тут, в комментах под каждой главой увидишь вопросы и ответы на них, в том числе и на твой вопрос тоже там отвечали.
Мне некогда, я 200 тысяч в месяц зашибаю
epam C# course for beginners
[System.Serializable]
public class Player
{
public Image panel;
public Text text;
}
[System.Serializable]
public class PlayerColor //этот класс содержит константы (panelColor и textColor), инициализируемые в Unity
{
public Color panelColor;
public Color textColor;
}
Алсо, при запуске скомпилированной игры, пропал текст на двух панелях, которые служат для отображения того, чей ход (при запуске через Unity он нормально отображается).
Всё, разобрался. Тут nested classes в скриптах и правда нормальное дело, проблема с графикой возникла из-за скриптов.
default:
requestContext.RouteData.Values["controller"] = "Product";
targetType = typeof(ProductController);
break;
Можете сказать, за что отвечает вот эта строка?
requestContext.RouteData.Values["controller"] = "Product";
Я чет проебался и не могу понять, зачем оно нужно, а из объяснения тоже ничего не понятно.
А не, я все понял, надо было английскую версию открыть, это в русском переводе все по уебански было написано.
Только непонятно, зачем это указывать в фабрике, если это делается в системе маршрутизации?
Можете помочь очередному нубасику хотя бы советом?
Типичная вузовская задачка:
Дан массив размера n. Найти номера двух ближайших элементов из этого массива (то есть элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания.
Вроде, пролистать одномерный массив и найти наименьший модуль разности несложно, как и вывести номер элемента через итератор.
Но, я рылся по сайтам как вывести в порядке возрастания номера элементов массива и ничего не нашел.
И самое главное, а что, если элементы массива будут повторяться? А что, если весь массив будет состоять из одних и тех же значений, как тогда выводить все повторяющиеся значения? На все эти вопросы ответа, увы, не нашел. Буду рад услышать их здесь, тем более, наверняка, тут полно готовящихся к сессии анонов. Возможно, что я зря заморачиваюсь, а решения через нахождение одного из минимальных значений(забить хуй на повторения и прочее) будет достаточно.
1)Как вывести номера элементов в порядке возрастания?
2)Как вывести не два номера элемента, а номера всех элементов, что имеют равнозначно минимальную разность(например 1 также близка к 2, как и 3, разница по модулю 1)?
1) Сделай копию массива(аrr2). Ориджинал отсортируй(arr1) гугли сортировку пузырьком, а потом по отсортированому(arr1) ищи циклом индекс значений во 2 массиве(arr2) и записывай в новый массив(arr3) индексы 2 массива, его и выводи.
2) Цикл до размера массива-1 в нем еще один такой же и в нем берешь разность (arr и arr[i+1]) и сравниваешь значение во втором цикле(arr[j] и arr[j+1]) по всему массиву сначала.
Накидал навскидку, возможно существуют решения и получше.
1)Разве сами по себе индексы массива можно выводить или как-то с ними оперировать? К ним же можно только обратиться.
2)Имеем на деле выход за предел значений массива(конструкция arr-arr[i+1]. Ну и не догнал что с чем должно сравниваться, ибо получившаяся разность никак не связана с парными индесами, следовательно, от сравнения толку мало.
1) Нет вообще в линкю есть методы с реплейсами и т.д., а еще есть словарь, но мы же берем в учет что это задание в шараге и за такое тебя вероятно пошлют нахуй, именно поэтому я тебе выше написал как можно сделать.
Индекс просто i в цикле, его и запиши, очевидно же.
2) Я же писал что размер-1. В случае с минусом, просто i=размер; i>1. Разность в первом цикле ты получаешь и эту разность ты проверяешь во втором цикле ко всем элементам массива (от начала до конца). Но судя потому что ты написал (тебе нужна минимальная разность), то тебе нужно сначала очевидно найти ее и потом с ней можно найти все одним циклом - if (минразность == arr и arr[i+1]) записать(или что там тебе нужно);
Господи, не тупи, и так уже тебе много подсказал.
Блять, макаба сьела разметку (arr[і])
Что с С#, сколько нужно времени? Материала достаточно? Математика пиздец нужна?
Ну не обсыкивайте, пожалуйста, я понимаю что это пиздец частый и пиздец тупой вопрос, но примерные временные рамки должны быть.
Спасибо за ответы.
Зависит от твоего уровня, если с нуля, то за год можно изучить всё необходимое. Советую вот эти ресурсы: https://professorweb.ru/ и https://metanit.com/
Кстати, для C# есть аналог JavaRush?
АГА ЩАС - сказал Билли
Вот так вот и хочется закинуть ему за щеку. Майки что это такое? Что опять б*ь произошло... Почему пользователи шарпа пользуются нормально и у них ничего не лагает даже на 2 коре самой перой.
Похоже что в самой МС студией даже не пользуются. Одни свистелки перделки, а под капотом автоваз.
Я высказался, пойду скачаю райдер.
А я на вскоде сижу. Удобно, красиво и ничо не лагает.
Сидел до последнего на 2008 студии из-за этого. Она реально очень быстрая была. Но увы.
За 5-8 часов в день или в неделю? За 5 часов в день ты его выучить за 2 месяца
Спасибо, все работает охуенно. Осталось написать эксепшены и препод охуеет.
unsafe/алгоритмы/ассемблерные вставкт, если проект изначально писался оптимизированным. Избавление от LINQ и динамической типизации, если это был прототип.
Unsafe практикуюв силу знаний, алгоритмы тоже. Так все таки можно ассемблерные вставки на C#? Расскажи как, я нагуглил ровно нихуя. На stackoverflow вообще пишут что нельзя, но я им не верю.
>Избавление от LINQ и динамической типизации, если это был прототип.
И тут можно поподробнее? Спасибо анончик.
НАШЕЛ!
https://esozbek.me/inline-assembly-in-csharp-and-dotnet/
Вот если кому интересно. Даже либа есть. Хотя она у меня не хочет работать, ну и похуй, байтики буду вставлять!
Сходи на любое собеседование, там тебе посоветуют.
> Какие темы (потоки, мультитрединг, дженерики) и какие фреймворки изучать в C# в первую очередь, если цель - Unity-разработчик?
Unity - это и есть один сплошной фреймворк.
Потоками он сам занимается.
Учи сам сисярп. Остальное в документации по юньке.
Подходов там сейчас два: основной - он же легаси он же через MonoBehaviour и новый соснульно-хипстерско-быстрый через еблю с entity component system
>Учи сам сисярп.
Я пришёл из Жавы. Насколько я могу понять, тут всё очень похоже, вплоть до синтаксиса.
Если в исходном массиве нет повторяющихся элементов, то почему бы не: отсортировать массив, взять первые два элемента, найти их индексы в исходном массиве, вывести в порядке?
потому что на вход могут подать массив с повторяющимися элементами
Просто в секунду там будет порядка 10000-20000 строк для анализа как минимум и это судя по dotTrace одна из самых кушающих операций, вот и хочется как-то оптимизировать это дело.
Забей на все хуй и старайся смотреть core и все что с ним связано. Потом я бы смотрел web api & mvc (именно в этом порядке).
Как понять, что класс может принимать инициализатор?
На примере ArrayList'а. Тут инициализатор не свойств, а типа как для массива, правильно? А как понять, что так вообще можно? По наличию IEnumerable? Или какой-то другой интерфейс?
Представь, что тебе дали некий новый класс. Как ты поймёшь, что к нему можно применить инициализатор только не свойств, а как для массива?
В добавок к IEnumerable конечно же.
Все классы реализующие ICollection соответствуют требованиям для инициализатора, но не все соответствующие требованиям реализуют ICollection.
Что-то куда не ткни - везде первый нахваливают, почему тогда студия все еще популярна?
Мимо-вкатчик
Если ты линуксоид/макоблядь ну или просто хочешь сэкономить ресурсы - вс код. Иначе ставь студию. Райдер платная, неюзабельная и забагованая параша, нахуй ее. ну она была такой пол года назад, хз какая она сейчас.
А вообще, иди нахуй, ебучий вкатывальщик. Поймешь, какой инструмент тебе нужен только когда вкатишься.
>Райдер платная
Лицензия на все продукты есть
>неюзабельная и забагованая параша
Насколько критичные баги?
Много где шрифты налазили друг на друга, в некоторых местах шрифт был больше формы раза в три. Сам интерфейс какой-то стремный и непонятный. Дальше я не смотрел, я просто перешел на вскод.
Конечно, ты можешь возразить, что эти баги не критичны, но они явно говорят о качестве продукта. за который еще и платить надо!
Помогите кто-нибудь
Но зато он выёбистую картиночку прикрепил, лол.
Аноны сможет кто помочь?
У меня есть класс обертка, который принимает ссылку на массив и делает с ним всякие вещи. Как сделать при индексации к этой обертки он возвращал массив из ссылки но уже измененный.
То есть. Основной класс создает массив, создает экземпляр моего класса обертки и в конструкторе обертки кидает созданный массив, я над этим массивом шаманю в обертке и возвращаю к примеру длину массива.
Потом основной класс индексирует мою обертку так: obertka[0] и получить n элемент массива или изменить n элемент типа: obertka[0] = 101, причем когда еще раз создать экземпляр обертки и опять индексировать обертку обратившись опять к obertka2[0], то опять получить 101.
С меня тонны нефти и 2 чаю
Вот идея:
1-много монстров(40-100)
2-много предметов(60-200)
3-будут босы и много чего еще.
У меня есть много интересных идей для своей игры. Пишите
Вот идея:
1-много монстров(40-100)
2-много предметов(60-200)
3-будут босы и много чего еще.
Думаю, мы заработаем много.
Это мой тред, никуда уходить я не буду!
А давай сделаешь еще больше монстров! И предметов! Круто же будет!
Не до конца понял, что ты хочешь, но, кажется, тебе просто надо сделать статик свойство, которое будет хранить инфу о текущем состоянии
В треде есть такие монстры?
Bachelor’s Degree in Computer Science, Electrical Engineering, or Computer Engineering
5+ years experience as a software engineer in C#.net
1+ years experience working in an environment where CI/ CD tools are used
Have a minimum of 2 years experience leading or mentoring junior developers
2+ years experience in writing unit tests
Experienced using Jira and Git
2+ years in an environment where you used architecture principles and frameworks
At least 1 year of working experience using cloud services such as AWS
Proficiency in the following skills and technologies is mandatory:
General database knowledge in a technology such as SQL Server/Oracle/MySQL/MongoDB/Cassandra
SOA, EDA, and Design patterns
Javascript (ReactJS, AngularJS) , HTML5, CSS3
Some experience in Linux, Django, REST and shell scripting
MVC and knowledge of another server-side programming language (Ruby, PHP) is desired but not mandatory
Demonstrate success as a problem solver
Be a results-oriented individual
Comfortable “working virtually” with teammates and customers around the world
Good proficiency in the English language
позиция 300к/сек? какая вилка?
Понравилось это:
>5+ years experience as a software engineer in C#.net
>2+ years experience in writing unit tests
Т.е. подразумевается, что чувак мог кодить пять лет, из них 3 года он мог вообще не покрывать код тестами?
Человек мог "кодить" 10+ лет и ни разу не написать ни одного юнит-теста
>Generic extension method
Прочитал статью про методы расширения (https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/extension-methods), там нет ответов на мои вопросы.
1) Что за параметры <TInput, TResult> после названия метода, но перед его параметрами в круглых скобках? Как это называется? Я пока только знаю, что после названия метода сразу пишутся параметры в круглы скобках.
2)
>Их первый параметр определяет, с каким типом оперирует метод, и параметру предшествует модификатор this.
Я понимаю, когда мы расширяем тип string
>(this String str)
Но что мы расширяем здесь? Что это за тип?
(this TInput o, ...
Теперь читаю статью про дженерики (https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/generics/)
1) Так указываются универсальные типы, используемые в методе. То есть в качестве аргументов ты можешь передать объект любого типа. Но конкретно в твоем примере еще стоит ограничение (where TInput : class), это значит, что аргументы этого метода могут быть только ссылочного типа (класс, делегат, массив и тд)
2) Исходя из предыдущего пункта, думаю, понятно, что ты расширяешь то, с чем придется работать методу
Да, я уже нашел о чем речь, правда совершенно случайно. Дальше смогу разобраться, спасибо.
Есть какой-то всратый проект на asp.net, и нам кинули его на доработку. Я раньше с этой технологией вообще никогда не работал. Суть в том что с вьюхи ajax запросом посылаются данные на сервис url: "/../Services/WebService.svc/SaveDirector"
Но фишка в том что если нахрен всё удалить с этого файла, он так же будет работать и записывать в базу и т.п. 0 реакции на его изменения, только ошибка когда уже полностью удалю его. Я так понимаю это какой-то WCF сервис или что-то такое
[OperationContract]
public void ContactDirector(string FirstName)
{
...
}
Вот так выглядит этот метод
Немного не тот метод скопировал, но они одинаковые по сути. Похоже на какое-то кеширование что-ли
Cуп программач
Хочу кодить для себя 2д игори на шарпе, что юзать? Думаю про опенгл, но какой фреймворк его реализующий более-менее живой и приличный?
С меня нихуя, спасибо, анон
Анон, что думаешь на счет directx? Проблема в том, что нихуя не могу найти литературы
Я юзаю sharpGL, вроде бы самый живой из всех. Про directx на шарпе хз,он вообще на кресты заточен.
Например у меня есть несколько условий.
if (yoba || dvach || abu) {
...
}
Если йоба true, то что? Будет сразу выполнятся блок кода if или будут выполнены остальные проверки dvach и abu на выполнение условия?
Monogame
if(one || two || three)
Если 1 тру, то код сразу выполняется.
Если 2 тру, то код выполняется после проверки 1 и 2.
Если 3 тру, то код выполняется после проверки 1, 2, 3.
if(one | two | three)
Если 1 тру, то 2 и 3 все равно проверяются.
Если 2, то проаеряется 1, 2, 3.
Если 3, проверяется 1, 2, 3
Это на случай если ты дегенерат и в ифе делаешь какие-то вычисления с побочными эффектами
Юнити, очевидно.
Поскольку юнити ускоряет время разработки и массово присутствует на рынке, позволяя тебе не заморачиваться над мелкими проблемами.
Ни один уважающий себя разработчик не будет писать ничего на устаревшем моногейме или пытаться собирать движок с нуля, это все просто нерационально.
Да, я это и планирую. А ты уходи
А хули сложного перевести шарп на jvm? Вроде и там и там стековые, очень похожие виртуалки.
мимо
Xamarin вроде развивается до сих пор. Его хоть и купила MS, но он живой
я не помню были ли хоть в одной из книг "задания для закрепления", но я 100% помню, что не выполнял ни одно из них. Являюсь хорошим программистом
те книги, которые я читал, уже устарели и были по другим языкам. Один из авторов был Никита Культин: https://www.litres.ru/nikita-kultin/
Но те книги, которые сейчас в списке, я не читал. Шарп у него 2010 года, это ещё до async/await, это слишком старая книга.
Сам я Шарпу учился... сам. Как бы смешно это не звучало. Я залип на первой-второй главе Тро-ло-лоэльсона и вместо книги начал просто писать код в Райдере, который за меня поправлял те или иные вещи. Потом уже подтянул знания вида ref/out/in
Но у меня вопрос - некоторые ругают Юнити, так как считают его производительность низкой. Тем не менее, на hh.ru достаточно вакансий Юнити-разработчиков, и насколько мне известно, на Юнити есть даже успешные ААА-проекты.
В чём правда? У Юнити плохая репутация из-за потока криво написанной индюшатины?
https://www.youtube.com/watch?v=OBtaLCmJexk
Посоветуйте книгу по ASP.NET
Во втором блоке задач не могу осилить задание 6, хотя это самое начало, все должно быть элементарно.
Суть в чем: Вводишь число в десятеричной системе, программа проверяет вторую цифру в восьмеричном представлении числа.
Каким алгоритмом это можно сделать, используя те инструменты, которые дал к этому моменту автор, а это пару типов переменных, их приведение, арифметические, логические, побитовые операторы.
Вещи вроде этой я пока знать не должен:
string s = Convert.ToString(15, 8);
Каким алгоритмом это можно сделать.
Ну этот-то точно shporun.
1)переводишь с помощью тупой формулы и циклов в нужную систему
2)циклом while определяешь разрядность, типа после каждого прохода увеличиваешь на один, до логики сам допри
3)проверяешь цифру
Не используя циклы, это следующая тема.
Используя цикл, я и сам смог бы это сделать.
В любом случае, спасибо за ответ.
Зависит от языка и реализации. В дотнете по дефолту если йоба тру, то остальные проверки НЕ выполняются.
Потому что | это совсем другой оператор, можешь сам почитать что он делает.
Sololearn, там сами курсы очень базовые, но есть пиздатый пвп режим, где надо на время отвечать на вопросы
Спасибо за ответ, но видимо это не то.
Ведь даже если сделали override, то нулл никогда не вернутся, а возвращать null из tostring это уж совсем ебанутость.
if(obj.GetType().GetMethod("ToString")!=null)
{
}
Она тут и не нужна.
professor web
Возможно какой-нибудь анализатор ругался "ай-ай-ай не проверяешь на нал перед использованием" и чтоб он отъебался подперли костылем.
Юнити хорош для прототипирования. Хочешь скорость и мультиплатформу на c# - смотри в сторону моногейма (но там пиздец кривой апдейт выкатили, в версии 3.7 контент лоадер поломали)
Юнити содержит в себе кучу всего, отсюда факап производительности.
Возможно ли написать этот сервис у себя, только со своей реализацией?
Ведь интерфейс доступен, binding доступен, что еще нужно?
> в версии 3.7 контент лоадер поломали)
Они даже на сайте в разделе новости не написали о выходе, лишь добавили на страницу загрузки.
На сколько мне известно, уже пофиксили вроде как. Для моногейма надо "ночные" сборочки держать или собирать самому.
мимо
Говнокод прилагаю: https://pastebin.com/8j8tHbv7
У юнити великолепнейшая репутация. Это лучший и производительнейший на данный момент движок. Половина игр сейчас сделана на юнити. Вторая половина только проиграла из-за того, что сделана не на юнити. По-сути, в современном геймдеве есть только два кейса:
1. Ты используешь юнити.
2. У тебя проект на десятки лямов баксов (тогда может профитнее написать собственный движек).
>тогда может профитнее написать собственный движек
> тогда профитнее использовать написанный 15+ лет назад и допиливаемый по сей день собственный движок, потому что бабки на его разработку потрачены а их надо отбивать.
Пофиксил тебя.
Тащемта, уже многие ААА разработчики свои не основные проекты пишут на UE4, например Square Enix последний Kingdom Hearts 3, не смотря на наличие собственного пихла от финал фантази 14.
У юнити ниша - инди разработчики и некрупные фирмы, где графоний чисто по человекочасам/(штат*уровень команды) топовый делать не будут, а на простом графонии он и не тормозит.
Совсем примитивное 2д-индецо вроде тобой перечисленного, конечно, лучше на мелких библиотеках писать, для него юнити действительно из микроскопа по воробьям.
А всё это потому, что инхауз движки, как правило, имеют хуёвый инструментарий, писались местыми байтослесарями для местных байтослесарей и единственным смыслом их создания было тупо отсутствие 15+ лет назад подходящих коммерческих, умеющих в хотелки и оптимизон разработчиков.
GTKRadiant застал в свое время? Вот примерно такое же юзабилити у всех внутренних движков, напару с говном в кодовой базе и постоянным допилом.
ue4 это же плюсы, мобильные игры на анрыле зачастую охуенно оптимизированы при консолеграфоне, но их по пальцам сосчитать можно по сравнению с игрулями на юнити
Вкратце, нужно написать некий Web-сервис, отдающий наружу REST, с данными из базы. Вроде все просто, Web API + Entity Framework.
НО: сервис должен сам, у себя (на сервере) регулярно, с заданной периодичностью обновлять базу.
Уточнил, можно ли сделать 2 программы - Windows службу для обновления базы и ASP.NET MVC сайт, оказалось, что нет, должно быть одно приложение.
Есть идеи, братишки? Вообще не ебу, как в одной проге совместить и службу, и ASP.NET приложение.
Есть словарь которые хранит другой словарь, так вот первый словарь получает новый элемент ОЧЕНЬ редко, но очень часто происходит итерация по этим словарям.
Этот первый словарь должен быть сортированным чтобы обрабатывать команды в нужном порядке стоит ли заморачиваться и делать при каждом добавлении новый словарь через orderby или тупо использовать sorted dictionary?
Гугл вроде как говорит что итерация по sorted dictionary дороже чем просто по dictionary, а то что там добавление очень дорогое мне пофиг, так как добавляю я раз в десятки секунд, а вот итерация идет под сотню раз в секунду.
По коду я имею ввиду словарь Dictionary<int,Dictionary<key,MyType>> и SortedDictionary<int,Dictionary<key,MyType>>.
Короче, как всегда, сосач бесполезен. Можно либо явно грузить таблицу c FK через Load, либо создать ответное навигационное свойство.
Словарь имеет время поиска по ключу O(1). Зачем тебе словарь, если ты все равно перебираешь все элементы? Также обычный словарь не гарантирует, что он вернет в перечислителе элементы в том порядке, в котором они были добавлены.
Господи, я сразу Quark вспомнил. Эх. Были времена...
Странно гуглил этот вопрос и SortedDictionary вроде как имеет n log.
Мне нужно создать что-то типа обработки элементов по приоритету.
Для этого и первый дикт который как бы проходит вначале приоритетные задачи, а затем уже ниже и ниже.
При том данные еще внутри группируются по Key для оптимизации.
Сейчас у меня лишь группируются данные которые идут подряд, но в большинстве случаев мне пофиг в каком порядке их обрабатывать поэтому на предварительной обработке я мог бы их сортировать по паре уровней и дальше бы они группировались по Key и давали бы еще больший прирост.
И вроде бы словарь всегда возвращал в том порядке в котором были созданы ключи, еще не разу не сталкивался с иным поведением, только с Concurrency были косяки когда получаешь не совсем актуальные данные из-за этого пришлось выдумать опять же группировку и добавление по lock, чуть хуже по производительности, но зато всегда точно актуальные данные.
>Странно гуглил этот вопрос и SortedDictionary вроде как имеет n log.
Так это сортед.
>>17566
>словарь всегда возвращал в том порядке
Тем не менее, он не гарантирует это. Я в исходники не смотрел, но возможно при наличии коллизий при перерасчете хэшей может порядок изменится или в другой версии фреймворка что нибудь поменяют.
А по поводу твоей задачи я нихуя не понял. Почему не сортедлист? Что касается прохода по всем элементам, то самый быстрый - массив. И что-то я сомневаюсь, что перебор элементов это то, что надо оптимизировать.
> Undertale
> Unepic
> Papers, please
> ну ты понел
А оно не на unity сделано? Если нет - то зря. Могли бы не мучиться, и сделать вме на юнити в 3 раза быстрее и с вдвое меньшим количеством багов.
>>17224
> Тащемта, уже многие ААА разработчики свои не основные проекты пишут на UE4, например Square Enix последний Kingdom Hearts 3, не смотря на наличие собственного пихла от финал фантази 14.
Им, наверно, эпики бабла забашляли, чтобы те на их двигле игру писали. Других причин предпочесть этот движок я не вижу - он не то, чтобы говно, но вполне себе такое менее удобное недоюнити.
> У юнити ниша - инди разработчики и некрупные фирмы, где графоний чисто по человекочасам/(штат*уровень команды) топовый делать не будут, а на простом графонии он и не тормозит.
Ну, это смотря что понимать под некрупными фирмами. Если вообще все, кроме фирм с бюджетами в десятки лямов баксов за игру - то да, ты все правильно написал.
В каком месте оно оптимизировано? Ты мне рабочий билд на ue соберешь меньше 20 мегабайт? Вот когда соберешь - тогда и поговорим.
Хуй пососи, я в геймдеве не ебу и говорил про производительность и как пользователь. Нахуй мне твои 20 мегабайт? Я скачал крутую динамичную игруху с шикарным графонием и она работает без проседаний на моем древнем медиатеке, значит она оптимизирована хорошо.
>Им, наверно, эпики бабла забашляли, чтобы те на их двигле игру писали. Других причин предпочесть этот движок я не вижу - он не то, чтобы говно, но вполне себе такое менее удобное недоюнити.
У юнити, емнип, серьезные лицензионные проблемы с получением и допилом исходников - КОНСОЛЬНУЮ АПТИМИЗАЦИЮ НИЗДЕЛОТЬ.
А без неё на соснулях на ванилле даже минималки уровня пеки с 30 кадрами не получаются.
Поэтому и уеч для ААА второго эшелона.
Вкатывайся в кор, никаких подводных. Главный подводный - тебе скорее всего придется выучить жс, чтобы уметь что-то пофиксить на фронте. Сейчас где работаю, у нас есть фронтэндеры, но легкий таск по фронту или фиксы частенько на меня кидают, поэтому первые пару месяцев очень сильно рвался с непривычки и болей от жс
Просто в юньке есть много способов выстрелить себе в ногу, что зачастую и происходит. Вот допилят ECS, так производительность в несколько раз скакнет, а в определенных тасках так и в раз 10.
Да, дело в том что базовые вещи понятны в C#. Читаю Троелсена, дошел до интерфейсов и что то сразу уныние.
А что в интерфейсах непонятно? Алсо какой предыдущий опыт?
Знаю С, Pascal, функциональщину. По Pascal знаком по сути со всем, кроме ООП. По C знаком со всей основой (указатели, си-строки). По функциональщине знаю Scheme, Racket на хорошем уровне. С чего начинаться вкатываться в C# с такой базой знаний? Желательно книги или видосы на русском, можно книги на английском.
Основы ты знаешь, попробуй с метанита.
Я другой анон, но тоже хочется пояснений за интерфейсы. Нафига он нужны? Их используются просто как некую декларацию функционала? Типа гарантия, что в данном классе погромизд реализовал некие методы?
Посоны, я собираюсь унаследовать свой IShitReository от INotifyCollectionChanged. Это норма или мне нужен еще один слой абстракции, чтобы соединять репозиторий биндингом с каким нибудь листбоксом.
Это >>18539 был миссклик, сорян. Но тогда уж отвечу тебе. Одна из функций интерфейса это да, контракт. Класс реализующий интерфейс обязуется реализовать все его методы. Но самое главное - интерфейс - это основа полиморфизма, а полиморфизм важнейшая составляющая ООП. C# шарп - ООП язык, а значит всё взаимодеёствие должно идти через интерфейсы (разумеется для сферического приложения в вакууме). А еще интерфейсы позволяют с легкостью покрывать код тестами.
Везде практически так же говорят, но ничего конкретного. Вот ты пишешь, что интерфейсы - это основа полиморфизма. А в чем это выражается?
Вот как контракт я интерфейс воспринимаю. Наличие интерфейсов вносит определенный порядок в структуру классов.
>В: Ряяя, сисярп тока на винде работает!11! Бджвава лучше!
>Гугли нет кор
Десктопа-то нет.
А что тебе с поллитроморфизмом непонятно?
virtual SomeType MethodName (ICoolInterface someObject)
вместо
virtual SomeType MethodName (MyCoolClass someObject)
ОПП изучил, но когда начинаешь лезть уже в ASP, суть происходящего не улавливаешь.
Если не ошибаюсь таски потребляют threadpool и в твоей задаче они кончаются и вообще 8к тасков глупо создавать.
Уверен ты их не вручную делаешь, а циклом и для этого лучше использовать Parallel.For/Foreach потому что там уже за тебя все подумают и оптимизируют, а если хочется через опции можешь с параллелизмом поиграть.
И вообще таска не дешевая операция, лучше не создавать их такими кучами.
Примерная реализация и затупок с подпиской и отправкой значений: https://pastebin.com/z5Sb67gD
Делал через делегаты и ивенты, но теперь надо реализовать все через EventHandler.
Все как и в паттерне наблюдателе.
Observable - ObservableStack у меня, который подписывает на события Observer.
Observer - Observer у меня, который слушает вызовы Notify и от туда берет значения себе в лог.
Может кто помочь? С меня как всегда 2 чаю и нихуя
Смотри дружок пирожок. Интерфейсы это просто секс, когда начинаешь их понимать.
Да интерфейс это контракт и лучше в полиморфизме использовать чаще их, ибо когда у тебя десятки классов наследуют 1 и тот же интерфейс, ты всегда будешь знать что нужно именно реализовать, зачем? Вот смотри:
У нас есть нереализованная фигура, которая в себе хранит свое название, количество сторон и т.п. свойства
И у нас есть такие фигуры: Квадрат, треугольник, 4х угольник, ромб, параллелепипед и т.п.
Теперь нам нужно написать метод, который по очереди выводил количество сторон, описывать метод для каждой фигуры? Ужас и бред, используем полиморфизм и апкастим(то есть приводим к чему-то абстрактному, выше по иерархии). Ведь все эти фигуры имеют что-то общее, общий контракт, который будет описывать каждую фигуру, теперь в каждом классе реализуем интерфейс.
И мы можем каждый экземпляр фигуры привести к общему контракту IShape(апкаст) и засунуть все фигуры в 1 массив хранящий IShape, а потом в цикле пробежаться по всем кто реализовал IShape и вызвать у них нужное нам свойство.
Лучше подтверждать свойства чего-то на деле, написав и реализовав самому интерфейс, а что не понятно из реализации спрашивать тут.
Если есть вопросы спрашивай отвечу, если что то мог где-то обосраться, сорян и лучше читать нормальную литературу и https://docs.microsoft.com/ru-ru/dotnet/csharp/
Может кто пояснить?
ну или где про это почитать, чтобы понятнее было.
Или мне Рихтера немного позже попытаться прочитать?
Ну или может кто пояснить, зачем оно нужно?
Будут ли за это спрашивать на собеседованиях? В работе это необходимо?
то есть если я тебе скажу, что там чуть ниже создаётся миллион тасков, тебя вообще паралич хватит? Но, во-первых, там Семафоры, во-вторых, мьютексы на однотипные действия. Завтра перепишу кусок, останется не больше 4-5 тредов. Сейчас эта система нужна, чтобы выполнился одно задание из коробки А, потом одно из Б, потом одно из В и так далее, пока не закончатся все задания. Если коробка кончается, она пропускается. Легче всего это было сделать, создавая подряд таски из каждой из коробок, проверяя какие коробки заняты в данный момент. Надо будет придумать как в этом случае сделать так, чтобы из коробок создавались треды по порядку, сначала из одной, потом из другой, потом из третьей, потом опять из первой. Мб реально на Parallel.ForEach перепишу. Надо посмотреть какое там поведение
Если хочешь понять зачем интерфейсы, почитай про inversion of control и dependency injection.
Если хочешь задачку на закрепление, напиши обсервер, который будет следить за изменениями одного файла и нотифаить своих подписчиков когда он поменяется. Логику которая занимается проверкой файла на изменения вынеси в отдельный интерфейс.
Твой миллион никогда одновременно жить не будет лол. Читай про тред шедулер
Так мне по следующему заданию надо реализовать этот паттерн на деле, а это что-то типа подготовки, к тому заданию
Можешь вместо листа использовать дикшинари, где ключом у тебя будет стринг - путь к файлу, а валюе -эвентхандлер.
Или лист keyvaluepair.
я хотел сам додумать, но спасибо еще раз за еще одну подсказку. А вот хотел спросить, а зачем такая реализация нужна?
там через EventHandler, у все классов слушателей одна и та же функция принятия, почему бы просто подписчиков в список и вызывать всех кто подписался?
>там через EventHandler, у все классов слушателей одна и та же функция принятия, почему бы просто подписчиков в список и вызывать всех кто подписался?
Я нихуя не понял что ты хотел спросить.
почему бы не сделать проще и в ObservableStack сделать список класса Observer, все Observer, которые подписываются на ObservableStack добавляются в лист или удаляются, а потом если произошло что-то в ObservableStack он вызывает метод который пробегается по списку и у всех Observer в списке вызывает HandleEvent.
Хм, что же проще, использовать уже готовый EventHandler или сделать дополнительный класс который делает все тоже самое что и он? Давай подумаем вместе.
Звучит очень противно!
Могу за ООП, отличаю ООП от функционального программирования. Есть знания в linq, есть привычка содержания кода в чистоте, умею в контроль версий, гитхаб.
Могу в разные базы данных типа mongodb sql mysql
И ещё нужны ли работодателю такие проекты на гитхабе:
Есть серьезные проекты по типу:
различные типы сортировок с отрисовкой графика скорости сортировки. Деревья, мини редактор изображения на делегатах и наследовании настроек от 1 настройки, что-то типы таблицы excel можно вызвать по ряду и строке и получать значения и все через индексаторы
Есть шуточные проекты по типу: генетическая машина, наследуем новое животное, реализуем и описываем его и так как все животные от одного IAnimal можно делать всякие штуки без опаски и выводить новое животное.
Вообще это хоть тянет на Джуна или pre-middle?
С голым знанием языка хуй куда вкатишься. Тебе нужно владеть технологиями/фреймворками. Ксамарин/core итд.
Не хочу учить язык, как скомпилить EXE'шник из кода на гитхабе? Есть маны?
При компиляции проекта, в папке debug, вроде, проекта лежит готовый exe
Ладно и что мне начать учить? Пользоваться однажды фркйморками ВК апи и компьютерным зрением, вроде это был AForge
Спасибо. Да я в разработку софта хочу. Какие часто используются, кроме windows form, wpf xamari
Да бля, ладно, если анон не отвечает, то скорее всего сам ничего не знает, а значит и мне знать не нужно
По-твоему, какая разработка софта сейчас с вебом не связана? В контексте .NET
Поэтому вскод, дискорд, скайп и слак сделаны на электроне?
И этот электрон работает лучше, чем .нет, лол
Майкрософт — быдло-стартап? Ну-ну.
Так-то я люблю кроссплатформу и считаю, что играется в хайлодных приложениях с ней тот, кто может себе позволить — просто прикольный эксперимент на благо ИТ-сообщества, да и развлечь собственных инженеров. Для менеджеров идея переиспользования компонентов ещё звучит в теории прикольно. Но вот например ребята из ЭйрБнБ полгода назад резали правду-матку, как запилили 100500 экранов на РН, переиспользовали компоненты но в итоге сказали ну его нахуй, ибо задолбались от разных проблем, в первую очередь совместимости с нативным кодом.
https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c
Несмотря на любовь к кроссплатформе, я считаю, что она всё ещё дерьмо по сравнению с нативом (не только мобильным). Но есть например надежда на hummingbird и прочий флаттер.
Кароч, есть одна страница, типа этой: http://blhx.wikia.com/wiki/Leander
И я хочу достать имя, тип и локации дропа. Посмотрел чем можно распарсить HTML нашёл HtmlAgilityPack. Попробовал вытащить локации и понял что хуйня: уникальных названий класса или что-нибудь подобного нет в исходном коде, ну или я слепой или дурачок. В общем то сделал вот так huy.DocumentNode.SelectNodes(".//a[@rel=\"nofollow\"]"), однако там куча мусора, поэтому при склейке, условием проверял, чтобы в тексте нода было "-". Но это тащемта костыль какой-то, а я же не ламер. Дак вопрос следующий как правильно достать нужные данные, может вообще не в сторону парсинга html смотреть?
Потому что статический метод имеет доступ только в области класса, внутри которого определён, разве нет?
"Недоступен из-за его уровня защиты"
Всё, разобрался
Погуглил бы сначала апи для сайта, может и ебаться не придется.
UML можешь даже не учить.
1. В начало зашифрованного блока писать несколько определенных байт и проверять их при проверке пароля. Эти биты будут видны в исходниках кода, не станет ли это брешью (т.е. хацкер будет знать и исходный блок и зашифрованный, поможет ли ему это взломать пароль)?
2. В начало зашифрованного блока писать рандомные байты. И тут вопрос, гарантирует ли AES шифровальщик, что он кинет исключение или может случится так, что он расшифрует но неверно? А так как байты рандомные я не смогу это проверить.
Пикрелейтед кидает IOException на строке ReadAllLines, мол, "нет доступа". Из того, что я понял по описанию FileShare на MSDN, вообще, должно работать. Но понял, очевидно, неправильно.
Есть какой-то вариант считать содержимое файла, не закрывая пишущий поток, или эта идея изначально обречена?
А, и сразу, это обязательно должны быть два разных IO-потока.
Нет. Ты статичность с публичностью перепутал.
Погуглил и, кажется, это тут ни при чём. Дело не в многопоточности (господи, благослави терминологию), а в нескольких одновременных хэндлах на один и тот же файл.
>>20246
Перепробовал комбинации (FileAccess, FileShare): (Write, Read), (Write, ReadWrite), (ReadWrite, ReadWrite). Ни одна не сработала.
Внезапно додумался попробовать прочитать поток вручную, а не через File.ReadAllLines(). Сработало в случае, если ЧИТАЮЩЕМУ IO-потоку воткнуть FileShare.ReadWrite. File.ReadAllLines(), конечно же, использует FileShare.Read, что и виновато во всех моих злоключениях.
>>20069
Вопрос закрыт.
Студия же может дебажить это дело без каких-либо ошибок, но зато тупит как блондинка, вводишь код, подсвечивает его красным как ошибочный еще секунд 5 после того как ты его дописал. Да и при дебаге почему-то запускает программу на секунды 3-4 дольше, проц при этом не на 100% загружен.
Никогда бы не подумал что разработка на шарпе может превратиться в мучение, когда IDE тормозит весь процесс.
У меня со студией было все норм, ничего никогда не лагало даже на моем некроноуте.
А вообще, я на вскод перешел - для моих поделок его достаточно, нет ничего лишнего, все понятно, удобно и красиво в отличии от райдера
> ArgumentOutOfRangeException: The UTC time represented when the offset is applied must be between year 0 and 10,000
Как ни странно, я просто отладил и понял, что ResponseHeader не принимает слишком старые даты для LastModified. У меня кое-где ломалась дата и сбрасывалась до MinTime. Я временно впихнул туда work around
Меня на собеседовании по всему .NET гоняли. Не знаю насколько всё это необходимо на реальных проектах.
По опыту могу сказать что для большинства вакансий наверное 80% не используется.
К примеру что у меня, что у друга на работе требуют крайне простой код. Неважно насколько код быстрый, насколько правильный, главное чтобы был прост как две палки чтобы другие его понимали с пол пинка.
У меня домашние проекты в разы сложнее того что заставляют на работе писать. Хотя в моих проектах очень много сложностей возникает из-за желания оптимизировать, так как достал говно софт который для небольших задач жрет 1 гиг и 20% проца не понятно на что, так еще сука и тормозит.
От друга слышал что у него был период в компании когда им запрещали использовать LINQ, потому что другие участники проекта не могли его выучить. Сейчас с этим стало получше, но все равно за что-то сложнее Where могут дать нагоняй.
Особенно если пишешь на языкоподобной версии с использованием let.
Меня вот на собеседованиях постоянно гоняли за ковариантность и контравариантность, но использовал я это только в своих личных проектах и то всего пару раз, при том что можно было легко и без этого обойтись.
либо скажите мне, что я делаю не так.
мне нужно запустить эту программу. я открываю цмд и пишу dotnet build и путь суда. в ходе выполнения появляется та ошибка.
нагуглил msbuildБ теперь такой результат.
как должен выглядеть этот project file и как именно в него записать эти проперти?
теперь у меня вообще нихуя не работает.
ой бляяяяяяяяять проебал целый день на эту залупу и в итоге нихуя
сукаааааааааааааааафылворафылдваорфыв
[HttpPost]
public ActionResult Edit(Tour tour)
{
Tour oldTour = tourDB.Tours.Find(tour.Id);
oldTour = tour;
tourDB.SaveChanges();
return RedirectToAction("Index");
}
при таком способе данные не изменяются, а при таком
[HttpPost]
public ActionResult Edit(Tour tour)
{
tourDB.Entry(tour).State = EntityState.Modified;
tourDB.SaveChanges();
return RedirectToAction("Index");
}
срабатывает исключение
А пикрил не обращай внимания.
да казалось бы простой урок на metanit но редактирование записей в БД сделать не получается.
После делегатов планирую вернуться к паттернам (я уже пытался их изучать, но на тот момент они казались мне слишком уж абстрактными, а теперь, вроде как, если и не чувство необходимости в них, то как минимум осознание их потенциальной полезности появилось).
А вот куда после всего этого двигаться - не совсем понимаю. Что можно такого после этого выучить месяца за три, чтобы устроиться кодером кодингового кода тысяч на 50-60 в месяц? Или это нереальные деньги для вката с нуля?
Ты язык изучил, молодец. Учи платформы. Неткор, например.
>(в целом норм, но оно тяжко переходит на интуитивный уровень понимания, наследование воспринимается слишком громоздким переусложнением во всех случаях, кроме совсем уж очевидно искусственно созданных исключительно для демонстрации наследования
Ты верно заметил — наследование и работает в идиотских случаях для детишек "Птица — животное". Если предметная область чуть сложнее (финансы, ещё какое говно) — то с наследованием да и вообще ООП не всё так просто.
>устроиться кодером кодингового кода тысяч на 50-60 в месяц
ДС? Если да, то расценки такие: джун и не знаешь язык/фреймворк — 50к, джун и знаешь язык/фреймворк — 90к. Я не из дотнета, но неск лет назад устраивался на 50к и уговором, что после окончания испытательного (2 месяца) 80к. Лучше подзадрочи .неткор, как советуют выше, и сразу требуй 90к.
Учу приблизительно с августа, на собеседования планируя начать ходить через 3 месяца.
Вне нет кора твой максимум - исправление багов в легаси коде, созданом для windows server 2003. А нет кор это опенсурс, линукс и хипстерские технологии.
Вы там в ДС охуели что ли лол? У нас в Томске (так то дохуя вакансий) если джун и не знаешь язык/фреймворк — идинахуйК, джун и знаешь язык/фреймворк — 25-40К, в среднем на 30 устроишься (особо дауны и на 15к могут устроиться)
>А нет кор это опенсурс, линукс и хипстерские технологии
И 9 вакансий, охуенно будешь сидеть без работы.
А вообще, внезапно вакансии и для веб форм дохуя.
У вас в Томске и квартплата меньше и трата на передвижения и трата на продукты питания.
на райдере подсказки на русском языке?
За МКАДом зарплаты в несколько раз меньше, чем в ДС. Это правда. Но нужно учитывать, что у каждого жителя замкадья есть огород и приусадебное хозяйство. Жители замкадья питаются с огородов, выращивают птицу и скот. Поэтому деньги им нужны только на одежду и коммунальные платежи. А значит вполне справедливо было установить им меньшие зарплаты, чем в Столице, где приходится покупать в том числе и продукты питания.
Да, кстати, новая вижуал студио даже на нормальных компах лагает, не говоря уже про мой ноут.
Какие есть альтернативы для нее?
а теперь к вопросу
пишу что то вроде электронного дневника
Сделал 3 таблицы в бд(таблицу учеников, таблицу уроков и таблицу оценок)
Спарсил их в Rows
Сделал CRUD на все 3 таблицы
всё ок
А теперь я хочу реализовать поиск оценок по ученикам, без использования запросов к БД.
Тобишь поиск через Table.Rows
пс я нубасик,тяжело объяснить что сделал, или что нужно, если кто поймёт, помогите плиз
Ну и собственно вопрос, как мне это лучше реализовать
да или вообще как нибудь, я что то вообще не пойму :с
Безусловно, но блять джуну платить 90к, при этом у нас в среднем 30. В дс ВСЁ дороже в 3 раза? Нихуя не так же.
Тупа иди нахуй
А например?
У Рихтера написано, что это для расширяемых приложений и создания экземпляра типа.
>В дс ВСЁ дороже в 3 раза? Нихуя не так же
Рыночек так порешал не поэтому.
У маасквичей хорошее знание английского, они уёбывают за бугор или садятся на удалёнку. Разницы нет, человек потерян для российского рынка.
Из технических вузов ДС число выпускающихся не-долбоёбов не такое уж и большое. Владеют нужными технологиями и того меньше. Поэтому выход - звать людей на такую зарплату, которая обеспечила бы человеку из региона не только равную покупательную способность, но и повыше, чтобы он шевельнул анусом.
>и трата на продукты питания
Да не пизди, там разница процентов 20 максимум, а иногда в ДСах продукты дешевле/так же стоят как и в моем Засранске 350к.
Какая-то неадекватная шапка.
Лично я работаю над расширениями для Revit. Дебажить в условиях, когда эта срань после каждой пересборки расширения должна быть перезапущена (а это что-то в районе минуты с пачкой диалоговых окошек), а тебе при этом надо работать с геометрией, часто корявыми данными и достаточно неочевидными апи - боль. Поэтому, например, запилил себе на рефлексии мини-фреймворк, который перезагружает расширения на лету. Без неё это сделать тупо невозможно.
Сериализация/десериализация жсона без ручного заполнения полей, DI-фреймворки, и подобное тоже на рефлексии строится с огромной пачкой атрибутов сверху. Я бы сказал, что рефлексия - почти чисто библиотечная штука.
другой анон
>От друга слышал что у него был период в компании когда им запрещали использовать LINQ, потому что другие участники проекта не могли его выучить.
Это нормальная практика, вот у Рихтера в советах про методы расширения написано:
>Прибегать к этому механизму следует не слишком часто, так как он известен не всем разработчикам. Например, когда вы расширяете тип с методом расширения, вы действительно расширяете унаследованные типы с этим методом. Следовательно, вы не должны определять метод выражения, чей первый параметр — System.Object, так как этот метод будет вызываться для всех типов выражений, и соответствующие ссылки только будут загромождать окно IntelliSense.
Вопрос исчерпан. Нашел ошибку у себя в коде.
>Лично я работаю над расширениями для Revit
Извини, Анон, я не знаю, что это.
>Дебажить в условиях, когда эта срань после каждой пересборки расширения должна быть перезапущена (а это что-то в районе минуты с пачкой диалоговых окошек), а тебе при этом надо работать с геометрией, часто корявыми данными и достаточно неочевидными апи - боль.
Угу, значит, это нужно для отловли багов во время работы приложения, действительно, разумно.
ошибка была во View а не в Controller.
по началу было вот так:
<input type="hidden" value="@ViewBag.Id" name="Id" />
воспользовался
@Html.HiddenFor(model => model.Id)
и всё заработало. Теперь вопрос где можно найти полный список HTML хелперов?
Боже, ну и связность у текста. Как вы это говно вообще читаете? Излагает же как последний мудак.
>хочешь сделать такой хорошо выглядящую приложуху на WPF по MVVM-паттерну
>нет ни одного one true way, каждый в городит свой колхоз
>в каждом втором туториале MVVM грубо нарушается и шизик-программист начинает прописывать логику прямо во вьюхе, потому что это проще всего
>кастомные диалоговые окна - через костыли
>блокировка кнопок при инвалидации полей на форме - через костыли
>кастомные контролы - через костыли
>ехал диалогКоординатор через рилейКомманд через сервисЛокатор
>магические строки by design
>в васянском mahapps.metro-фреймворке забыли прописать ссылки на современные контролы в словареРесурсов, плюс костыль
>поток уничтожает ссылку на диалоговое окно раньше, чем вызывается его закрытие, делай еще раз костыль
>в xaml постоянно ворнинги что контрол не найден, хотя он найден и отображается без проблем
Это мой первый опыт написания на WPF, но бля, почему на каждом шаге постоянно превращаешь свою ногу в решето. То, что делалось на сраном винформс за 2 минуты, тут делается за 2 часа минимум.
Лучше бы на электроне делал, ей-богу.
Пиздёж. В ДС 90к платят мидлам, джуна нахуй пошлют. Средний сениор получает немного за сотню, но чтобы перевалило за 200к ты должен очень сильно шарить, и я таких людей не встречал.
Мамкиным программистам, которые тут 24/7 вопросы из хэллоу ворлдов задают никакие 90к не светят уж точно.
Чёт хуйня. Миддл меньше чем сотку работать даже не станет в ДС.
Медианная в ДС для кодомакак - в районе 120к.
Даже тот первокур Артём Исхаков (который зарезало и изнасиловал винишку в прошлом году) работал ЖС-макакой за 80к. В ДС2.
В ДС2 зарплата миддла колеблется от 80 (пара лет опыта коммерческой разработки) до 130 (пять лет+).
Джуны - 50-60.
Про сеньоров особо не в курсе.
https://vc.ru/flood/43849-zarplaty-it-specialistov-na-seredinu-2018-goda
И лучше бы никому не соваться в юнити, заебетесь дай боже
- Так мне Паваротти не понравился, картавит, в ноты не попадает...
- Вы были на концерте Паваротти?
- Нет, мне Рабинович по телефону напел.
Судить об авторе по переводу от васяна
>You should use this feature sparingly, as not all programmers are familiar with it. For example,
when you extend a type with an extension method, you are actually extending derived types
with this method as well. Therefore, you should not define an extension method whose first
parameter is System.Object, as this method will be callable for all expression types and this
will really pollute Visual Studio’s IntelliSense window.
И тогда вот это трэш
> Например, когда вы расширяете тип с методом расширения, вы действительно расширяете унаследованные типы с этим методом
скорее будет так:
>например, когда вы расширяете тип с помощью метода расширения, в действительности вы расширяете и все производные типы.
скоро будет
Тащемта нормальный перевод, смысл сохраняется, в основном.
>ManualResetValueTaskSourceCore<TResult>
Алсо, хотелось бы писать что-нибудь с графическим интерфейсом, есть проблемы с этим на сишарпе?
> Если знаешь кресты на уровне ООП, можно ли вкатиться в сишарп без особых проблем?
Не особо. Просто смотри metanit.com когда что-то непонятно.
> Алсо, хотелось бы писать что-нибудь с графическим интерфейсом, есть проблемы с этим на сишарпе?
Если сидишь на винде и хочешь писать под венду, то все гораздо проще, чем на плюсах - винформс даже для хеллоуворлдщика интуитивно понятный.
Но на линуксе/макосе нихуя толкового нет.
Я один ахуеваю с индуского спагетти кода на мсдн? Документацию вместо анекдотов читать можно.
1. Класс модели реализует INotifyCollectionChanged. Но насколько корретно подгонять модель под вьюху?
2. Лепить прослойку с INotifyCollectionChanged между моделью и VM.
3. ???
Что думаешь онон?
>подгонять модель под вьюху?
Боюсь даже представить что ты там такого сделал, что приходится модель под вьюху подгонять. Ни вьюха, ни модель не должны иметь представления друг о друге, вообще никакого.
Гугли two way binding.
Слишком сырая, рано ей еще пользоваться.
Ну там будет сложная бизнес логика, по идее. Пока не очень представляю ее целиком.
Фронт SPA+мобильный клиент, нужно будет дергать пуши на ведре.
А в остальном никаких отличий от крудоговна.
Начни писать и смотри как пойдет. Посмотри как реализуются паттерны repository и unitofwork с энтити фреймворком.
Почему я не могу параллельно писать в массив используя указатели и присваивая по смещениям новые значения?
Пытаюсь в bitmap писать через lockbits, обычный цикл работает как по часам, параллельный же херит где-то 50% картинки шумами, при том шумы каждую генерацию разные.
Что я не делаю не так? Ведь по логике вещей все должно быть отлично, я же тупо меняю память по указателям ровно на тот же размер который там хранится.
Разнице же нет если я пишу в 0x0 и 0x4 по 2 разных инта из одного потока или нескольких, обращаюсь же я по указателю и эти два потока вообще о друг друге знать не должны.
Может у тебя алгоритм начинает мусор генерить в параллельном режиме? Попробуй тупо нули писать из разных потоков.
https://www.youtube.com/watch?v=1koWtKkKb_o
Есть FileSystemWatcher, отслеживает изменение одного маленького текстового файла. Фильтры LastWrite, FileName и CreationTime. EnableRaisingEvents = true. Подписываюсь на событие Changed. И все отлично, любые изменения файла дергают обработчик.
НО на другом моем компьютере это не работает, FileSystemWatcher создается аналогично, но при манипуляциях с указанным файлом ничего не происходит - событие не срабатывает. Файл, очевидно, меняется и в винде так же меняется время изменения, путь и имя файла так же указаны верно.
В чем может быть проблема и в какую сторону стоит копать?
1. Какие ОС у тебя на 2 компах?
2. Права, которые выдаются юзеру, от имено которого ты запускаешь приложение. Попробуй выдать ему все-все права на эту папку и всё ее содержимое.
Случаи идентичные в этом и мистика. Вин10 с последними обновлениями, файл в папке Мои документы текущего пользователя, запуск приложения и внесение изменений производятся от имени администратора
Да, может и не понят.
У Рихтера был определен метод, ответственный
за уведомление зарегистрированных
объектов о событии
Вот его реализация:
protected virtual void OnNewMail(NewMailEventArgs e) {
EventHandler<NewMailEventArgs> temp = Volatile.Read (ref NewMail);
if (temp != null) temp(this, e);
}
Вот на метаните этого нет, а работает аналогично. Нафиг Рихтер это написал?
Я нашел источник проблем.
У меня было
Paralle.For(0,size,i =>{
for(j=0;j<size;j++){
var x=...
var y=..
var index=..
ptr[index]=...
ptr[index+1]=...
ptr[index+2]=...
ptr[index+3]=...
}});
В той версии был шум, но стоило мне сделать так:
Paralle.For(0,size,i =>{
var x=...
var y=..
var index=..
for(j=0;j<size;j++){
...
То все стало нормально, похоже компилятор как-то оптимизировал эти переменные и они в некоторых случаях перезаписывались друг другом, при то судя по всему перезапись была тоже с ошибкой так как шум был не просто отсутствием цвета, а совершенно случайной точкой.
Производительность кстати выросла с 620-650 мс до 220-270 мс на генерацию картинки.
Ну, короче, вопрос такой.
Необходимо ли реализовать данный метод или в разработке можно спокойно обойтись без него?
Ты какую то хуйню делаешь. Бинди филды вм к вьюхе, потом в вм из модели берешь данные и кормишь их этим филдам. Скормил данные филду - вьюха обновилась.
Твои вьюмодели должны реализовать INotifyPropertyChanged.
https://pastebin.com/0d5PTL6r на пример базовой вьюмодели.
protected virtual void OnNewMail(NewMailEventArgs e) {
EventHandler<NewMailEventArgs> temp = Volatile.Read (ref NewMail);
if (temp != null) temp(this, e);
}
Если я могу просто вызвать событие
NewMail(this, new NewMailEventArgs(from, to, subject));
Может ли нарушиться во втором случае безопасность потоков?
Мне первый метод кажется очень неудобным, если у меня в классе множество событий, кроме NewMail
В твоем примере может быть вылет так как ты на null не проверяешь, точнее так и будет однажды.
Плюс в первом метод virtual, а значит можно наследовать и добавить поведение при получения мейла.
К примеру добавить доп. проверок, типа блочить все письма по одному спам листу.
А так вроде теоретически между проверкой newmail на null и запуском может случится так что newmail станет null и будут проблемы.
А volitale тут нужен вроде как для защиты от компилятора и скорее всего на всякий случай.
Зависит. Если у тебя однопоток, то можно и не писать лишнего. Я обычно делаю так
var handler = SomeEvent;
handler?.Invoke(this, args);
И некоторую потокобезопасность обеспесчивает и особо не напрягает в плане написания. Но если у тебя высоконагруженное приложение с диким многопотоком, то обеспечить потокобезопастность событий та еще задача.
>>23812
В чем прикол expression? Чем это лучше например Set<T>(ref T storage, T value, [CallerMemberName], string propNmae)?
>>23807
>>23812
>>23815
Как биндить вью и вьюмодель я знаю. Дело в другом. У меня в модели есть репозиторий который реализует CRUD для POCO классов... короче вот максимально упрощенная реализация https://pastebin.com/naYynsLq
Для обеспечения безопасности. Событие тот же делегат, но управлять им может только класс им владеющий.
>Чем это лучше например Set<T>(ref T storage, T value, [CallerMemberName], string propNmae)?
Ну хотя бы тем, что тебе не нужно писать стрингу с пропНеймом. Поменяешь как нибудь имя у проперти, а про то что где то там стрингу с этим именем передавал уже и не вспомнишь.
В чем проблема вызывать OnChanged() после того как сохранил изменения?
>не нужно писать стрингу с пропНеймом.
CallerMemberName заставляет компилятор подставлять имя свойства автоматически, так что хоть 100 раз переименовывай.
>>24087
>В чем проблема вызывать OnChanged()
Вызывал, но механизм биндинга видит, что коллекция осталась та же и не обновляет ничего.
>>24093
Мне кажется ты вообще не на мои вопросы отвечаешь. Я знаю про все эти коллекции и интерфейсы, я спрашивал на каком уровне они должны быть реализованы. Но я вроде уже начинаю понимать как можно провернуть все обновления не трогая модель нужно больше вьюмоделей
>я спрашивал на каком уровне они должны быть реализованы
Ну на этот вопрос я вроде бы сразу ответил - все это должно быть реализовано у вм.
Сейчас у него есть реализация INotifyCollectionChanged, так что добавление/удаление норм отображается на листбоксе. Но к сожалению вот такой финт не проканал
args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, item, item, index);
OnCollectionChanged(args);
Я думал оно обновит айтем в листбоксе, но видимо для оптимизации, так айтем остался тотже, ничего не обновляется.
Поэтому сейчас потом попробую прикрутить вьюмодел для класса модели.
Смотри, думаю тебе запилить кастомный контрол для отображения элементов коллекции и у вм этого контрола дергать OnChanged() когда поле элемента меняется. На главной вьюхе хранишь коллекцию этих контролов. Я так в одном проекте делал и работало норм.
*думаю тебе стоит запилить
>Я думал оно обновит айтем в листбоксе, но видимо для оптимизации, так айтем остался тотже, ничего не обновляется.
collection[someIndex] = newItem;
Если в вм реализован INotifyPropertyChanged - обновит.
>>1324412 (OP)
Знакомый с прошлой работы ушел из .net и перекатился на ноду. Говорит доволен.
Я вообще не вижу разницы
Просто назовите названия пакета/пакетов, которыми вы пользовались для решения этой задачи. Заранее спасибо
https://dotnetcademy.net/Learn/2047/Pages/8
Goal
Please add the item Chewbacca to the list. On the next line, write the first item in the list to the Console.
Вот мой код:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
List<string> characters = new List<string>();
// Your code goes here.
characters.Add("Chewbacca");
Console.WriteLine(characters[0]);
}
}
все нормально выводит, но учебник пишет типа
Not all requirements have been met.
You must pass the value of the first item in the array to the call to Write or WriteLine.
подскажите пожалуйста, где ошибка? Все же верно
https://dotnetcademy.net/Learn/2047/Pages/8
Goal
Please add the item Chewbacca to the list. On the next line, write the first item in the list to the Console.
Вот мой код:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
List<string> characters = new List<string>();
// Your code goes here.
characters.Add("Chewbacca");
Console.WriteLine(characters[0]);
}
}
все нормально выводит, но учебник пишет типа
Not all requirements have been met.
You must pass the value of the first item in the array to the call to Write or WriteLine.
подскажите пожалуйста, где ошибка? Все же верно
Спасибо тебе, аноша, а то я уже растерялся
у линкью для ienumerable есть метод first и есть firstordefault который null выкидывает, когда список пустой, попробуй его.
150 тысяч конечно. Тырпрайз же.
Зачем там они нужны?
Чем это принципиально отличается от обычных экшнов?
Я даже не могу врубиться, что там асинхронно должно работать...
>HTML Agility Pack
Работает, в принципе, как стандартные функции в js, типа
>document.body.getElement(s)By...
Лучше в джаву иди.
Я понял, что с сишарпом все не очень, но уже выучил его, на Джаве и работы больше и нужна она будет всегда.
>unmanaged memory
А это ещё что? Почему unmanaged? Так то спайки нормальные, разве что может слишком частые, а так это нормальные паттерн функционирования приложения.
Порог вхождения меньше, если ты себе работу бэкэндом найдёшь. А так обычно C# это веб и фуллстак, поэтому заебёшься всё говно учить. Ну и юнити ещё есть, да.
Спасибо, лучший ответ. Я бы не спрашивал тут, если бы догадался прочитать про них. Какой же я глупый.
Это типо сарказм? Ну поверхностно всё понятно - это нужно, чтобы оптимизировать работу воркер тредов.
Асинхронные вызовы не ожидают, когда действие завершится, а освобождают тред для исполнения другой работы. Ожидание происходит, потому что асинхронные операции завязаны на внешний ресурс - будь то хтпп запрос, база данных или файловая система. В итоге у тебя менее вероятно все эти треды будут заняты и в целом под нагрузкой приложение будет работать быстрее. После завершения асихронного метода его вполне может подхватить уже другой воркер тред, ну и соответственно там всякие вещи типо синхронизации данные под капотом есть.
Это всё относится и к экшенам. Ты бы лучше конкретные вопросы задавал. Если ты понимаешь саму концепцию async/await - то какие проблемы? Если нет - ну блядь, пиздуй читать, в инете горы инфы.
_db в том же классе находится, и выше в коде используется _db и не подчеркивается, ошибки только в этом методе.
Что какой тип? Предлагают заменять, но все равно ошибки.
Опять репорчу. Теперь в VS Code не работают элементарные моменты. Библиотека с Value подключена, DataContext больше нигде не используется.
Такая хуйня повсеместно происходит, уже проще 3d модели научиться делать. Или на джаву перейти, может там такой хуйни не будет.
О да, крупные проекты нормально работают и пишутся, и только у местных дебилов с лаба1 повсеместно нихуя не работает
у меня 4ый проект на дотнете и все заказчики из бриташки
сейчас так вообще на дотнет коре пилим
вообще я заметил, что бохатые зарубежные дяденьки любят майкрософт
хз почему
1. Ищешь вакансию с зп 4000к денег
2. Откликаешься
3. Проходишь собеседование (возможно, несколько этапов)
4. Устраиваешься
5. Работаешь
.
.
N. PROFIT!?!?!?!!?
Я бы не стал епам смотреть, у меня был препод по тестированию ПО из епама. Хуже чем у него пояснений и занятий не встречал.
Вопрос: в чем стоит подразобраться, чтоб сложилось впечатление получше? Уже освоил основы C# (синтаксис, структуры и классы, интерфейсы, дженерики, асинк), T-SQL (и научился создавать конекшн в C#, делать через него ввод-вывод), ознакомился с HTML, JS, CSS, JIT, вник в SOLID.
Стоит подучить алгоритмы или еще какие технологии? Времени от пары дней до недели. Учусь быстро, тугоумием не страдаю.
>>26345
>>26346
не, сурьезно. у меня уже есть: хороший, беглый английски, 8 лет стажа на рынке, я подучил ангуляр и ПМские скилы, я знаю 2 тупорылые CMSки sitecore, episerver + episerver commerce, я работал с таким, от чего у всех голова кругом идет, я изучал исходники ASP.NET 3, 4 и даже ASP.NET Core.
пересчтав свою зп из гривён в баксы у моих даков - евры я понял, что это 2650 чистым
КАКОГО ХУЯ!? т.е. я работаю, мало того, что с говном мамонта, которое хер жунам/мидлам обьяснишь, так мне еще мало платят
я 100% делаю что-то не то, анон.
че за? :(
Курсы бесплатные
Меняй контору на .net core и высокой зп.
redmine
нет, ты что
крупная галера с офисами в украине и россии
проекты - интерпрайз на интерпрайзе и интерпрайзом погоняет, которые пилят 8-13 гребцов
да вроде все норм
если действительно знаешь это
> основы C# (синтаксис, структуры и классы, интерфейсы, дженерики, асинк), T-SQL (и научился создавать конекшн в C#, делать через него ввод-вывод), ознакомился с HTML, JS, CSS, JIT, вник в SOLID
ну разве что еще можно git-а навернуть и принцип работы http протокола знать нужно
У многих слишком широкая вилка и платят ровно столько сколько запросили.
Работал в одной конторе и подружился с чуваком, пришли примерно в одно время туда +- пара месяцев. Так вот спустя полгода узнал что он получал на 800$ меньше чем я, хотя делали одно и тоже, с одним и теми же знаниями. Просто я ляпнул цифру больше и мне дали больше, при том как я потом узнал я ляпнул слегка выше среднего в вилке которую контора имеет.
С дотнетом, особенно, кором, работает не так много галер, плюс крупный тырпраз, плюс снг, тут к гадалке не ходи. Захаживал в офис в дс2, батя знакомой работает там, пиздатый офис.
С таким стажем можно зп раза в 3 выше просить.
ну я из украины, в дс2 офисе не был
хотя даже сейчас время от времени люди летают в рф через минск на тимбилдинги и прочие коммандировки
Реально ли только на бэк на аспе устроится? Либо везде фуллстаки нужны?
Спасибо.
Зачастую, когда пишут фуллстек, это тот же бэк, но так как надо плотно взаимодействовать с фронтом, он есть в требованиях. У нас, например, есть фронтовики и они пердолят фронт по большому счету, но бывают таски на 90% бэка и 10 фронта типа поле добавить или кнопку, они тоже мне идут. Думаю, в серьезных продуктах прям совсем фуллстеки не нужны, типа jack of all trades master of none
Блин, как же я люблю Харьков и хочу туды.
Например я узнал что лучше объявлять массив с известным числом элементов, например new List<T>(256) так например при добавлении нового элемента массив не будет пересоздаватся и не будет теряться процессорное время.
Или такой трюк объявлять класс как sealed, что оптимизирует работу компилятора.
Не за что, не забудь копейку отправить.
Нужен я в этой схеме как переводчик, ньюбай и пиарщик.
Вот тут например:
https://www.dotnetperls.com/optimization
Все с примерами и реальными тестами. Если хочешь вникнуть прям в суть, то читай книги о CLR и JIT.
Спасибо.
>Фронт я просто не переношу, что-то по мелочи добавить - ок.
Ну вот я именно так и сижу, по мелочи иногда добавляю что-то, но даже при такой мелочи у меня каждый раз горит жопа от говнокода на жс и как его умудряются ебануть хуй знает куда, у нас в легасичасти это пиздец просто. Где-то в отдельный файл для вьюхи, где-то ебаный монстр на 8к строк, где-то прям в <script> нахуярено с аттрибутом текст/бабел, что интеллисенс вообще нихуя не распознает и сидишь ковыряешь это дерьмо. Еще топчик это жс с razor вставками
uwp/wpf красивые дохуя можно сделать, гугли компоненты кастомные, чтобы не пердолиться самому сильно
если ебанутый, можешь заценить electron.net
>uwp/wpf
Они же только для 10 винды. Мне надо что-то универсальное, хрюшу можно исключить разве что.
Нагуглил Banifu .NET, пока что лучше всех подходит под мои требования, но он платный. Есть аналоги бесплатные?
впф под xp норм работает, правда, сосать будешь с четвертым дотнетом
90% фуллстэка на дотнете это бэкэнд +
>там кнопочка чёт ниработает поправь плес а то ваня говнов, написавший этот высер, в отпуске((((
Весь фронт-энд будут писать жаваскрипт-макаки по макетам, а от шарпера нужны тривиальные знания уровня туторов по какому-нибудь ангуляру.
Хочешь в старую винду- wpf + mahapps.metro / material design WPF.
Хочешь дриснятку - UWP, контролы выглядят заебово, но меня отпугнуло то, что проги нигде не запустить кроме десятки даже с плясками с бубном.
Хочешь кроссплатформенности - AvaloniaUI в бетке сейчас, или Электрон, но приготовься к тому, что сраный простенький круд у тебя сожрёт 500 мегабайт.
Как мне открыть магию ООП? Как завернуться в абстракции? Теперь мне надо курить паттерны? Там все ответы? На потоке васяны сказали "Ну хз читай Кнута". Открыл, а там опять алгоритмы, нуйобана.
Бэкграунд: семестр дроча алгоритмов на крестах в универе. Захотелось вкатиться в программирование, но я так понял со слов одногруппников, что С++ это говно без задач и решил перейти на сишарп.
Хочу пилить игры. Начал курить документацию Юнити и понял, что знание хуевой горы классов и методов не поможет мне написать хороший код.
Так что теперь курить, чтобы не как школьник собирать велосипеды из костылей?
Продукт - первичен, код - вторичен. Пили прожекты, в твоем случае игры на юнити и анализируй, что тебе не понравилось в твоей маняархитектуре (расширяемость, тестируемость и.т.д.).
> чтобы не как школьник собирать велосипеды из костылей?
Так это и есть процесс разработки. Ты всю карьеру будешь их собирать.
>Как мне открыть магию ООП? Как завернуться в абстракции? Теперь мне надо курить паттерны? Там все ответы?
Скачивай с гита не сложные опенсорс проекты и смотри код и архитектуру приложения, пройдись с дебагером.
Например это https://github.com/shadowsocks/shadowsocks-windows/blob/master/shadowsocks-csharp/Program.cs
Гейдев сплошные алгоритмы. Так что привыкай. Вкатывайся в рей-трейсинг сразу.
>расширяемость
Что? Всмысле расширяемость? Это как?
Бля, для меня все это - темный лес. Я хеллоуворлдщик же.
Пытался я эти игори пилить. По туторам, например. Че-то стены ifelse вместо автомата меня дико напрягали. Да и туторы какие-то васянские.
Где-то какие-то синглтоны упоминаются. Загуглил - ну паттерн. А какие еще паттерны есть? Гуглю - везде ебучие курсы "погромизд за три недели".
.json формат какой-то везде, где нужно сохранять данные. Я максимум с .txt и .bat работал. Чем он отличается от .txt? Где все это читать? Есть какой-то один источник информации, литература, например? Документация?
Статьи на хабре читаешь, какие-то рефакторинги, UI, моча и говно. Что это, блять, за слова?
Я не спорю, что нужна практика. Но нет толку от практики, когда просто не знаешь, что делать.
> А какие еще паттерны есть? Гуглю - везде ебучие курсы "погромизд за три недели".
> .json формат какой-то везде, где нужно сохранять данные. Я максимум с .txt и .bat работал. Чем он отличается от .txt? Где все это читать? Есть какой-то один источник информации, литература, например? Документация?
> Статьи на хабре читаешь, какие-то рефакторинги, UI, моча и говно. Что это, блять, за слова?
Тебе нужно курс компьютерной грамотности пройти - ну типа таких, знаешь, на которые старики ходят. Тебя там научат нормально гуглом пользоваться - и в гугле ты легко найдешь ответы на все свои вопросы.
Тебе нужна идея. Придумай какое-нибудь небольшое приложение, чтобы его реализация тебе казалась непростой задачей. В процессе написания у тебя неизбежно будут возникать вопросы, так ты будешь развиваться. Конечно, по-началу внутри у тебя будет лютый говнокод, но чем больше такой практики, тем лучше ты будешь понимать что происходит. Освой гит, постоянно совершенствуй код. В будущем будешь смотреть историю изменений и смеяться над собой
Возвращать налл тоже колхоз и чревато налл эксепшеном. Что делать зависит от ситуации.
Так нулл и нельзя в вашем сисярпе возвращать из int. Как мне обозначить тогда, что функция отработала некорректно ? 0 возвращать?
Тебе написали как можно
Что делает твоя функция?
У тебя есть два путя. Если твой метод допускает, что результата может не быть, то можешь вернуть 0. Но это должно быть очевидно вызывающему коду, т.е. должно быть очевидно, что 0 это не результат. (Например метод IndexOf() возвращает отрицательно число, если элемент не найден. Тут ясно что отрицательное значение не может быть индексом.). Второй вариант это если метод не смог сделать свою работу, тогда нужно действовать в соответствии с принципом самурая - харакири. То есть бросать Exception.
В смысле блядь некорректно отработала?
Я не обманываю.
Делаю take, работает, делаю skip().take(), тупо не идёт дальше, ни ошибки, ничего нет.
Да не может быть такого. У нас пагинация на этом построена и все прекрасно работает
Походу я разобрался, оказывается, что версия SQL Server стоит 10ая, и скорее всего Entity создаёт запрос, который не поддерживается, лол.
да по разному везде. ты без рабочего опыта совсем? мне дали задание сделать бота для телеги дома. во время собеса чуть по ооп поспрашивали
Да, без рабочего опыта. Вакансия была без опыта, на вход было тестовое задание, которое я написал на Джаве.
> мне дали задание сделать бота для телеги дома.
Странно, что на собесе про ООП спрашивали, а не про сорта смузи.
Идёшь на собеседование и там оцениваешься.
ulearn.me. Там есть практики где нужно скачать проект и что-то в нем сделать, а потом проверяющая система тебе скажет - уже можно или еще нет.
Местные практики скорее на олимпиадные задачки похожи (только с инструкцией по решению) чем на коммерческий опыт.
На работу нужно определенный стек знать а не уметь рассчитывать угол отклонения биллиардного шара.
Практики не скажу что простые, но потому я и считаю что они могут показать уровень подготовки. А задача про углы отскока шара - простейшая, если что.
Я ждал вопросов по ООП и фрейворкам. А дали олимпиадную задачку на алгоритм. Я полез в дебри, и только после собеседования понял, как просто её решить.
Почитаю что-нибудь по алгоритмам.
Нам немного поменяли задание поэтому немного обновляю.
В универе задали курсовую работу(КОД НА C#), но в связи с тем что я немного тугодум - не могу сделать некоторые задания.
Кроме того, наш препод не может в объяснения, так что для тугодумов это конечная.
1)За вектор X взять побочную диагональ ЕСЛИ непарные столбцы массива(квадратной матрицы), если они имеют одинаковое количество непарных элементов. (там до этого была формула для заполнения элементов, но это уже готово, заполнить матрицу можно просто рандомными числами)
Если это не так - взять главную диагональ как значения вектора.
2) Найти функцию U=f(X) (За U взять суму тех элементов вектора X, которые не являются наибольшими и наименьшими элементами вектора.)
Помогите пожалуйста я вас умоляю
пишите, я тут надолго.
В скрине моя курсовая, но там не та функция и вектор. Их я спиздил в прошлом своем варианте(неважно, просто хоть что то так считает )
Я уже плыву по полной.
Пожалуйста, помогите)
и третий вариант out значение
public bool TryFind(object item, int index) {
if (found) {
index = 23;
return true;
}
index = -1;
return false;
}
bспользование:
if (TryFind(something, out var index)) {
// нашли
} else {
// не нашли
}
WPF.
UWP по мне для серьезных вещей не подходит, тормозит сильно. Как при работе, так и при компиляции.
Практики могут показать как у него варит башка в придумывании алгоритмов. Готовности писать сайтики для бизнеса она показывает примерно нихуя, так как там в первую очередь важно уметь накидать круд и орм натянуть на проект, а не алгоритмы. Особенно джуну, не пойдет же он что-то серьезней крудошлепства пилить на первой работе.
А про отскок для примера, первое что вспомнил.
Что не так с ботом?
Прост в моей конторе не собираются переписывать проект, написанный на WebForms (программа управления ресурсами, внедренная в хуеву тучу универов, министерств и тд). Вот и думаю, изучать дальше эту технологию или перейти на MVC и подыскать новую работу? В целом это место меня устраивает.
Ой блядь у меня знакомый есть такой, нашел место давно, там на старте без опыта за винформс платили 60к. 2 года дрочил там винформс, сейчас зп 80к и это оказалось потолком, теперь не ебет, что делать, т.к. хочет больше денег, но в других местах за винформс еще меньше платят обычно. С вебформс все еще хуже, думаю, на хехе реже винформса попадается
>Перейти на MVC
This. Чем дольше ты будешь просижиывать задницу на старом дряхлом стариковском говне, типа веб форм, тем меньше у тебя будет шансов потом реабилитироваться.
Двачую олимпиадные задачки.
Неудачливый порось пётр итт, отмечу, что все собесы, которые я пытался проходить в иностранные конторы, проходили примерно по одному сценарию:
1. Тест, который ты решаешь сам, когда тебе удобно. На него выделяется время, в основном, час. И задачки все формата:
>Даны пары слов, за какое минимальное количество перестановок букОв в одном из слов его удастся превратить в анаграмму для второго (тут определение анаграмммы). Верните массивчеГ, в общем, если не надрачивался, то ни за что все задачки не успеешь решить. Все условия на ангельском.
2. Собес с кадрами (иногда отсутствует) на ангельском
3. Собес с ит-командой, задающей манагерские задачки и алгоритмические, примерно такие же, как и в первом пункте, но уже онлайн, сиди, скрипи мозгами.
Такие дела.
У меня тоже разрыв с реальностью появился, не знаю готов или все ещё хуже червя-пидора. Решил сидеть дрочить дома, мамка пока все равно не гонит.
Мне кто-нибудь может объяснить как работает Console.MoveBufferArea()?
Хочу поиграться с оформлением консольной обработки, а то и написать очередную змейку.
Хочется вывод всякой хрени непосимвольно сделать, вроде только этот метод похож по описанию. Но он делает ведёт себя странно, как будто школьник-аутист писал.
Ты это я! Но уже заебался дома сидеть и нихуя не делать, пора действовать, анончик!
А что не так с async, в джаве нет аналога? даже в жс промисы есть
>>29417
>Ахуеть, garbage collector с джуном разбирать?
Хуй сосите, заебали, в дс2 для шарподжунов 60к норм зарплата, вы не ахуели совсем там? Что тебя спрашивать тогда должны, мразота, за синтаксис спросить должны и сойдет? Я просто охуеваю с такого мудачья, если ты за полгода-год не прошелся по основам gc, то я вообще не ебу, что ты там делал все это время. Если ты очередное говно, которое 2 месяца почитал метанит и хочет получать деньги за нихуя, то выкатись нахуй в какой-нибудь общепит говночистом, там точно не будут нихуя спрашивать.
Ну и по итогам, мы там поговорили про соотношение Жавы и Шарпа. Да, Жавы много в энтерпрайзе, но Шарп новее, активнее развивается, а энтерпрайз ныне идёт по пути модернизации и переосмысления своих АИСов. При прочих равных буду перекатываться в Шарп, как-то мне .NET комфортнее, а в свободно время смогу пилить себе индюшатину на Юнити.
Ты наверное удивишься, но в джаве нихуя нету.
А асинки вообще впервые появились в f#, потом в c#, а потом уже остальные подхватили. Ну, именно ключевые слова async/await, парадигма то была и раньше.
>дс2 для шарподжунов 60к
Люто двачую.
Вам бы сука, в айти державу, где для того чтобы устроится на джуна, с 350$ зп, нужно asp net + UI фреймворк
Ты идешь на джуна, и при этом у тебя есть опыт работы разрабом на джаве? Или ты просто сначала учил джаву, и без опыта пошел на собес по шарпу?
Сам хуй соси. Я вообще крестобоярин и даже нас так в жопы не ебут, как вас продакшн-макак. Мутировать IL-код тебя там не заставили на собесе то?
Начал учить джаву, кое-что написал на джаве, кое-что написал на шарпе, ищу начальные позиции и по джаве, и по шарпу.
Хорош. Сколько тебе лет?
Не понимаю, чего ты бомбишь с gc, дурачок, всесь материал по сборке мусора с мсдн часа за 3 осиливается без напряга, нихуя сложного там нет практически, там даже код только в описании idisposable. Ебать, чувак идет на джуна, я не утверждаю, что его ебать должны по всей clr, но вполне закономерно, что пара вопросов по gc будет. Опять же глянь среднюю зп шарподжуна дс/дс2. Люди за вдвое меньшую на днищеработах зависают, а тут без опыта вполне достойная з/п, предполагающая, что человек имеет знания и может приносить прибыль хозяину.
>Мутировать IL-код тебя там не заставили на собесе то?
Неуместное сравнение, пошел нахуй.
Это сравнение к тому, что джуну не нужно обладать такими навыками и знаниями, работодатели ахуели. А ты еще и съел зп в 60к, даже индусы за такие деньги давно не работают.
>Шарп новее
Языку 19 лет, он уже состоявшийся инструмент со своими достоинствами и недостатками. Так что монолитного легаси-говна, на поддержку которого ищут джунов за еду полно что там, что там.
>Это сравнение к тому, что джуну не нужно обладать такими навыками и знаниями, работодатели ахуели.
Ты ебанутый? Еще раз, вся инфа по gc получается примерно за три сука часа, охуеть навыки и знания. К тому же откуда тебе знать, какие знания там нужны, ты же крестовик якобы
>А ты еще и съел зп в 60к, даже индусы за такие деньги давно не работают.
Долбоеб, какая разница кто где за сколько работает, если мы про пидарахию говорим? Здесь 60к без опыта это заебись с пересмотром з/п через полгода-год или перекатом в другое место .
Охуели скорее вы, потому что от вас в вашей пидорахе нихуя не требуют кроме языка.
>>29634
>Языку 19 лет, он уже состоявшийся инструмент со своими достоинствами и недостатками.
Если мы не говорим .net framework ниже чем 2.0 - то ок, в противном случая я нихуя не понимаю.
Майкам никто не мешает нормальном имплиментить фичи, потому что нормально написан IL.
Оракл же такой хуйни себе позволить не может, из-за тон реализаций JVM и пяти реализаций GC. В итоге костыль на костыле, 100500 аннотацией, которые занимаются вещами которые в шарпе из коробки хуеву тучу лет, что в итоге выливается в тонны кода.
Про отсутствие LINQ - я вообще молчу, но stream api завезли, да, спустя столько лет то. Synchronized - привет из 2007, я же, когда пользовался lock, даже толком вспомнить не могу.
А вообще, нужно искать нормальные компании, чтобы не сидеть на супорте легаси говна, вот и все.
>В итоге костыль на костыле, 100500 аннотацией, которые занимаются вещами которые в шарпе из коробки хуеву тучу лет, что в итоге выливается в тонны кода.
Вот это кстати выбешивает, когда пишешь на том же Спринге.
Сделай MessageBox в том же пространтсве имен что и DialogResult
(system.windows.forms)
А вообще, лучше пропиши их нормально, и отформатируй код
> А вообще, нужно искать нормальные компании, чтобы не сидеть на супорте легаси говна, вот и все.
В нормальную компанию тебя не возьмут без опыта или корочки топового вуза.
Зачем ты намешал в кучу и формы и wpf? Либо MessageBox из форм + DialogResult из форм, либо MessageBox из wpf + DialogResult из wpf. Хотя если очень хочется наркомании можно привести значения, они в принципе одинаковые, но в формовском енуме их больше.
Разве? Ну ладно. Сделай репазиторий, в который вспомогательные классы кладут данные и пусть поток UnityEngine сам их стягивает оттуда когда ему нужно.
*вспомогательные потоки
В /math/ помогут, лол.
>>29813
Спасибо. Если честно, не ожидал что тут действительно помогут, прямо не верится что это 2ch.hk.
А в чём у меня тут конкретно проблема? Просто оно не хотело вообще работать без
using System.Windows.Forms;
И даже когда я добавил ссылку на эти формы, всё равно отказывалось работать без System.Windows.Forms. перед каждым. Существует какой то простой способ избежать этого нагромождения спама?
PS - Может посоветовать кто литературу для совсем уж чайников?
А какая нормальная зарплата в дотнете в ДС2 для пары лет опыта коммерческой разработки?
мимо собираюсь перекатываться в ДС2 из миллионника в Сибири
Что за проект? Скорее всего у тебя не работало из-за того, что подключены оба неймспейса и компилятор не может узнать какой именно мессэджбокс ты хочешь использовать, поэтому нужно указать полное имя типа. А вообще читай сообщения от компилятора, он хуйни не скажет.
Тебе не нужно каждый раз прописывать System.Windows.Forms у объекта, если у тебя вверху файла уже прописан using System.Windows.Forms
>Может посоветовать кто литературу для совсем уж чайников?
Для совсем чайников - metanit.com, можешь гуглить, можешь смотреть на docs.microsoft.com, если нужна книга по просто шарпу - Троелсен, но она достаточно объемная.
>>29812
У вас в рашке, для того чтобы устроится нихуя не нужно. Под нормальной компанией я имел ввиду, которая не сидит на супорте легаси проектов, а юзает последние плюшки и использует их на проектах, таких не так уж и мало.
Весь код ты только что видел, больше ничего нет.
>>29981
Я много читал docs.microsoft.com, только там пока объясняют одно , умудряется сказать что это нельзя использовать без чего то второго ,итд. И в конце получается целый каскад вкладок.
Троелсена уже советовали выше кому то, видимо мне и правда стоит прочитать.
У тебя wpf, удаляй от туда все ссылки на финформс и пользуйся месседжбоксом из System.Windows.
Люблю отвечать на говно, которое никогда не понадобится, на собеседованиях спрашивают как ракету собрать, при этом у них нормальные тесты не написаны и надо код переделывать, а работаешь ты над обычными крадами.
>если ты за полгода-год не прошелся по основам gc, то я вообще не ебу, что ты там делал все это время.
Работал. Какие основы GC? То, что там у объектов поколения объектов есть, прочее говно, и всякие диспоз методы и финализтор. Я больше и не знаю. И то даже вот это тебе нахуй не нужно.
мимо сениор
Да просто открыл для себя истину в том что, если уж решил вкатываться в .net и в c#, то сиди на винде и не рыпайся.
Два дня ебался с начала с настройкой monodevelop и тем как её подружить с sql server (кстати с ним тоже много ебалы на линуксе).
Потом перешел на Visual Studio Code, но не осилил как там связать воедино .net core и sql.
Короче я просто тупой, а Линукс для сверхлюдей.
>Два дня ебался с начала с настройкой monodevelop и тем как её подружить с sql server
Нахуя? Если хочется под линупс, то есть .Net Core + EF Core + Docker
Раз иуп, пиздуй в java- тред. За своего сойдешь
Сделай в юните потоке что-то типа.
if(Parsed)
{
MyPropForRegularRender=PropFromAnotherThread;
Parsed=false;
}
А другой поток в свою очередь будет делать так.
Task.Run(()=>{
if(!Parsed){
PropFromAnotherThread=Load();
Parsed=true
}});
Так твой рендер не зависит от данных, но при этом может рендерить не совсем актуальные данные, плюс могут быть задержка в данных 1 фрейм, когда другой поток отработал сразу после проверки if(Parsed) данные похватятся лишь в следующем потоке, плюс новые данные будут парситься лишь после рендера.
>Поток подготовки данных вместо работы ждет пока основной копирует результат
Асинхронность 10/10
Не согласен. Решарпер - мастхэв, не за что не вернусь на голую студию, очень удобная вещь, экономит тонну времени. По поводу лагов: это претензия скорее к майкам, что у них 32 битная студия, она и без решарпера хуево работает, пидорасы ленятся переписать свое говно с com вызовами, зато каждый год новая иконка.
Дотпик- полет тоже нормальный
Анализаторы (что решарпер, что встроенные в Intellij и Android Studio) - очень хороши, сами иде - иногда хуево работают и приходится сбрасывать кэш, кек.
Riderом не пользовался, но наверное скоро стоит, ибо от тупизны студии горит задница.
Поясни, что полезного есть в решарпере? Выпала возможность поставить лицуху на работе, но пока слабо пощупал. Студия меня полностью устраивала.
Можно ли делать игры на C# но не на Unity? А есть примеры таких игр? А игровых движков на C#?
Почему геймдевы чаще выбирают C++? Он удобнее? Или это просто лень?
Проблема все равно в студии. Она должна жрать ОЗУ, а не насиловать мой диск. SSD у меня на рабочем ноуте, на стацике - нет, но часто с него пишу.
>>31326
>Поясни, что полезного есть в решарпере
Спокойно пишешь код используя объекты из какого-либо пространства имен - оно тебе автоматически его прописывает, не помню когда в последний раз делал это руками. (возможно сейчас студия в это может, но раньше такого не было)
Неплохо рефакторит код, но нужно быть осторожным.
Не знаю что еще сказать, ибо голой студией не пользовался очень давно, для многие вещи сейчас как данность.
Просто поставить, попользуйся 2-3 дня. Вернись на обычную студию и там станет ясно, нужно оно тебе или нет.
>Спокойно пишешь код используя объекты из какого-либо пространства имен - оно тебе автоматически его прописывает, не помню когда в последний раз делал это руками. (возможно сейчас студия в это может, но раньше такого не было)
Если мне не изменяет память так еще 2010 студия могла.
Что у вас для начала почитать по C# на уровне "Философии Java" Эккеля?
Мне кажется, правильно сохранять единообразие синтаксиса, а не пристраивать сбоку настолько монументальное собрание костылей, как Spring.
Я предпочёл бы больше контроля, меньше "магии".
Я предпочёл бы на каждом шагу понимать, успешным ли было моё действие (в Спринге это далеко не всегда очевидно).
Отчасти справедливо для любого IoC-фреймворка, потому что их идеология в корне противоположна традиционному императивному подходу. В ASP тоже запилена поддержка IoC/DI
Есть мертвая XNA, есть полуживой MonoGame(приемник XNA), на них написаны Terraria, StardewValley, InfinityFlight. Есть библиотеки для работы с OpenGL/Direct.
>Отчасти справедливо для любого IoC-фреймворка
Я бы предпочёл более внятные правила игры. Даже если допустить значительную делегацию части функций стороннему фреймворку.
Ты про Xenko забыл.
Если там идет парсинг данных, то смысл работать без потребления?
Да и выдача там скорее всего готового объекта/массива т.е ссылочный тип, копирование занимает пару тактов. Можно сделать без ожидания, но тогда выйдет так что за 1 кадр может быть 2-3 парсинга если он быстрый и использоваться будет лишь последний, остальные просто так сожрали ЦП и память.
Это надо целую книгу прочитать и потом пердолиться в консольке чтобы просто проект откатить? РЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ, а еще говорят, что программисты себе жизнь облегчают.
Двух первых глав хватит, еще желательно третью. Это один раз читается. Можешь сразу вторую конечно читать. Если прямо совсем не хочется - в тырнетах полно гайдов вката за 10 минут. Всякие GUI приложения для этого не используются.
Блядь, хуле ты как из села, емае
1)Создаешь на гитхабе репу.
2)На своей пеке в папке с проектом делаешь git init
3)git add .
4)git commit -m 'Я ебу али бабу, это мой 1 коммит'
5)git remote add origin адрес репы
6)git push -u origin master
дальше идешь читать про ветки, мерджи, гитфлоу, фичи, хотфиксы и тд
Если там ссылочный тип, то ты предложил какую то хуйню. Получается рендер не может пользоваться этим объектом пока парсер его заполняет. И наоборот, парсер не может его заполнять пока рендер им пользуется. Где профит то блять? Два потока синхронно используют ресурс, пиздец многопоточность запилил.
Поток парсер генерирует каждый раз новый объект.
Поток рендер использует последний объект который был спарсен и говорит делай еще.
В результате при создании кадра ты не тратишь время на парсинг, но при очень быстром парсинге теряешь немного в актуальности данных.
Профиты в том что ты тяжелую работу не делаешь в потоке рендера и значит ЦП не становится bottleneck.
Даже если парсер генерирует каждый раз новый объект, он блокирует рендер если не успевает к началу кадра закончить работу. Если он парсит больше одного раза за кадр, то рендеру опять же придется ждать окончания текущей итерации. Короче наслаждайся нестабильным фреймрейтом и фризами от проснувшегося гц собирающего твое ненужное напарсеное говно.
Он никак не блочит рендер потому что в рендере мы проверяем был ли спаршен объект, если да, то запоминаем его и позволяем парсеру дальше работать, рисуем кадр. Если же парсер еще парсит, то мы используем для рендера старый объект.
В результате все что рендер знает о парсинге это готов ли новый объект или нет.
Парсинг никак не фреймрейт не влияет вообще, кроме конечно же нагрузки на ЦП из ДРУГОГО потока.
Но если ты так против моего метода, то предложи свой.
Мой то рабочий и крутится на паре проектов благодаря которому фреймрейт спокойно 200+ идет.
Хотя работа с данными может занимать больше 20 мс, но благодаря этому трюку это никак не влияет на ФПС, просто иногда может показать 1-2 кадра не совсем актуальные данные что для тех данных вообще не критично.
>>32675
Основная причина почему ААА используют С++ это сложность реверсинга.
На C# сложно защитить игру от левых модификаций и от взлома в том числе.
А так юнити вроде как собирались выпустить демку с супер убер оптимизацией где миллионы объектов в сцене одновременно рендерятся без просадок.
На разработку которых уходят миллионы, и которые имеют опять же имеют ещё большую прибыль. Например GTA V, Battlefield 5, Call of Duty Black Ops. Тут правда имеет смысл перечислять все популярные ААА тайтлы?
>>32721
>На C# сложно защитить игру от левых модификаций и от взлома в том числе.
Это кто тебе такое сказал?
25 проси, если ты не знаешь свой вэлью, то ты зелень. А значит 25 твоя цена (В ДС/ДС2 можешь на 40 поторговаться).
>>32916
>Это кто тебе такое сказал?
Потому что шарп компилируется в IL, а из него можно достать практически исходник. А всякие обфускаторы/протекторы либо замедляют (если в ынтырпрайзе это терпимо, то для YOBA гейминга критично), либо доводят код до нестабильной работы, а чаще и то и другое.
Но я не думаю, что взлом это причина отказа от шарпа, ибо топ игры ломают до релиза. КМК шарп просто не подходит, да заскриптовать движок на юните это ОК, но писать сам движок на шарпе это смерть - он слишком высокоуровневый. Все равно придется пердолить низкоуровневую хрень, и в лучшем случае .net будет просто лишней прослойкой.
Что это за хуйня? Для кого эти видео, для тех кто не понимает что такое программирование? Ведь человек который разбирается, сразу пойдёт обсирать автора за его быдлокод. https://www.youtube.com/watch?v=S9vPciEuIak
Для тебя. Ты это посмотрел и понес распространять в массы.
А зачем такие игры на шарпе делать? Их воопще на всем, что угодно делают хоть на луа, хоть на собственном скриптоязыке. Двигло же для них пишут обычно на чем-то низкоуровневом, типа плюсов.
Лол. Книга для детей. Читай Рихтера
>предложи свой
Примерно так, для ситуации с двумя потоками:
https://pastebin.com/J41tJsNE
Парсер может загружать данные непрерывно по несколько раз за кадр, не боясь заставить тебя рендерить 2 одинаковых кадра. Может обновлять контейнер по частям не засирая память лишними объектами. Рендер всегда по требованию получает доступ к самой свежей версии данных.
Из Контура сидят, но не обязательно разрабы.
azure
>25 проси, если ты не знаешь свой вэлью, то ты зелень
Если это тысяч рублей - то я за эти "деньги" даже задницу со стула не подниму.
Я не знаю цену фуллстаков и сколько платят на коре относительно классического mvc, а сидя на легаси и нихуя не делая (имеется ввиду на работе) - так тем более
>Поясните за модификатор параметра in
Ебаный врот, впервые про него слышу. Видать в новом шарпе завезли, нахуя опять же не понятно, аналог final в жабе.
>>33631
>Но тогда почему можно менять поля ссылочного типа
Нельзя менять ссылку на сам объект, поля же при это менять вполне можно.
>>33631
>И почему тогда пишут, что идет передача по ссылке
Дает тоже самое что ref и out : модифицировать свойства объекта при необходимости, но ref дает еще и сам объект, а out обязывает присвоить какое-то значение.
>Видать в новом шарпе завезли
Угу. Вот я и решил, что седьмому шарпу скоро два года исполниться, а я не пользуюсь плюшками (in появилось в 7.2 он на полгода младше). Вот теперь такая запись корректна, сиже разбираюсь что, почему и для чего:
static ref readonly int Foo(in int a)
{
... return ref a;
}
Один кейс для in нашел. При передачи тяжелой структуры она не копируется, при этом её нельзя изменить как при ref.
Есть вопрос по интерфесам. Я всё никак не могу понять: когда писать интерфейсы? Для каждого класса? Или это просто некая абстракция, для абстрагирования от всякого побочного и гарантии, что некий базовый функционал реализуют классы - реализаторы?
Пробовал B = A as B, всегда возвращает null. Какого хуя?
Одна - Приход, она связана с таблицей Поставщики через отношение "Один ко многим".
Так вот, когда я редактирую строку из таблицы "Приход" и через комбобокс меняю поставщика и пытаюсь сохранить, то мне выскакивает ошибка.
Выглядит это вот так
foreach (var p in db.PostavchikS.ToList())
{
if (comboBox1.SelectedItem.ToString() == p.Name)
{
pr.Postavchik = p;
}
Тут я получаю значения из таблицы поставщиков, ищу то, которое совпадает с выбранным в комбобоксе и в переменную pr сохраняю его. Мне сразу выдает ошибку:
>a referential integrity constraint violation occurred
А если перед этим установить свойство Postavchik в null и сохранить, то ошибки не будет.
А иногда эта хуйня умудряется еще одного поставщика мне добавить.
Блджад, лучше запросы наверное ручками писать, чем на эти ORM полагаться
Если ты из какой нибудь залупы, типа сибирского города, то 30-40 проси
Это просто пиздец. Все началось с вопросов типа: что такое .NET? можно ли создать объект абстрактоного класса?
А закончилось вопросами про потокобезопасность синглтона, мютексы, какие вы использовали DI. Я просто в ахуе. Что блядь тогда задют на мидлов и сеньоров? Ясен хуй, что меня не возьмут, хоть я что-то ответил по всей этой хуйне мимо настоящий русский, который не знает пиндоского языка. Это блядь везде такое спрашивают?
твоя мать умрет от рака, если ты не ответишь на этот пост
Да, это везде спрашивают. Позадрачивай метанит, и сможешь вкатиться .
Однозначно не везде. Но меня в одну компанию когда собеседовали, тоже спрашивали подобное. На тот момент я нихуя не знал этого и проебался.
Да. Сейчас многопоточность в тренде.
тю сука, забайтил ответить
Необходимо составить подрограмму поиска количества элементов, у которых a больше суммы a двух предыдущих элементов и меньше суммы a двух следующих.
class ListItem {
int a;
ListItem Next;
ListItem Prev;
}
А теперь посмотри сюда и подумой:
class A {}
class B1 : A {}
class B2 : A {}
A ab1 = new B1();
B2 b2 = (B2)ab1; //Какого хуя?
Ты можешь сделать как на пикриле, но придет ООП-полиция и анально покарает. Адекватным будет либо заиметь конструктор либо фабричный метод B, который принимает A.
Мидлам дают задачки и просят попиздеть полчаса про прошлые проекты.
>потокобезопасность синглтона
Какой то конкретной реализации?
//prepare
stream.ReadAsync;
//parse
return;
Так вот, можно ли, чтоб не повторять prepare и parse синхронный вариант сделать так
Read() => return ReadAsync().Result;
?
https://2ch.hk/pr/res/1335434.html (М)
https://2ch.hk/pr/res/1335434.html (М)
https://2ch.hk/pr/res/1335434.html (М)
https://2ch.hk/pr/res/1335434.html (М)
https://2ch.hk/pr/res/1335434.html (М)
https://2ch.hk/pr/res/1335434.html (М)
https://2ch.hk/pr/res/1335434.html (М)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
double a;
do
{
Console.WriteLine("Введите альфа");
}
while (!double.TryParse(Console.ReadLine(), out a));
double y = (Math.Sin(4 a) / (1 + Math.Cos(4 a))) (Math.Cos(2 a) / (1 + Math.Cos(2 a)));
double x = 1 / (Math.Tan(3 / 2 Math.PI - a));
Console.WriteLine(y);
Console.WriteLine(x);
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
double a;
do
{
Console.WriteLine("Введите альфа");
}
while (!double.TryParse(Console.ReadLine(), out a));
double y = (Math.Sin(4 a) / (1 + Math.Cos(4 a))) (Math.Cos(2 a) / (1 + Math.Cos(2 a)));
double x = 1 / (Math.Tan(3 / 2 Math.PI - a));
Console.WriteLine(y);
Console.WriteLine(x);
Console.ReadKey();
}
}
}
Подсказали на киберфоруме, при делении 3/2 делится как int, а не double. Либо тройке тип прописываем и все гуд, либо сразу 1.5 пишем и не паримся. Единственная трабла конкретно этого примера, если подставлять 0, то они не будут одинаковы, ибо идеально одинаковых функций не существует. Так же и при больших значениях, считает верно, но в какой-то функции результат выходит наиболее точно.
мимопэр
Он не любит британское написание, значит.
Как на дотнете с удаленкой и фрилансом? Все печально как у джавы?
Хуя себе ты тупой. Джава вообще топ язык для удаленки эвер, а по фрилансу уступает разве что пыхе с дваскриптом. Печально у него, совсем поехавший.
Это копия, сохраненная 1 марта 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.