Pull to refresh
1
0
Send message
А почему структура не может быть объектом?)
Так вам ничего не мешает погрузиться в этот удивительный мир ограничений, особенно сейчас во времена IoT. Микроконтроллеры вам в руки и вперёд))
Вчера авторы обещали поделиться материалами докладов. Выложите ссылки на материалы, пожалуйста.
Видать одному… А как обстоят дела с Xamarin + Rider под Linux?)
Я извиняюсь, но мне одному кажется что MS решили закопать свою кроссплатформенную инициативу. Ну точнее не закопать, а просто забить на неё… Лично я себя обманутым ощущаю слегка, ну т.е. я конечно могу есть кактус и он довольно-таки вкусный (C#/.Net Core), но тем не менее кактусом остается (поддержка не оч. ни от Майков ни от сторонних).
Как говорится:«Хороший программист на фортране, может написать на любом языке хороший код фортрана». Или что-то вроде того…

Я как-то не понимаю зачем такая статья, проблема то небольшая. Магические числа, это первое про что пишут в книгах. Пиши код, чтобы он читался как текст. Лично я предпочитаю длинные имена классов/методов/параметров, однако не любитель повсеместных комментариев.

Или же ошибка у первоисточника?)
Со статьей, в целом, я согласен. Однако мой опыт отличается от Вашего, нынче наблюдаю обратный процесс, люди начитавшись книг по ООП(что само по себе и неплохо) начинают выделять интерфейсы и творить «энти фабрики, стратегии» там где это излишне, так ещё для большей расширяемости интерфейс выкидывают в отдельную либу, и мы имеем пятьсотмиллионов проектов). Если расширяемость в данном месте не предполагается, можно и со switch начать, а далее перескочить недолго(если конечно не доводить до портянок в десяток case, которые используются в десятке мест).
Поддерживаю, тем более учитывая наличия Skia Sharp, необходимость в Win2D сомнительна.
Приеду домой проверю, но по-моему, т.к. события и делегаты immutable, то поменять то поменяет список(т.е. создаст новый и заменит), а тот старый выполнится до конца.
Честно говоря не понял что вы имеете ввиду, Thread.VolatileRead(ref changeDevNum) просто несёт «побочную» функцию защиты от оптимизации компилятора.
А что вы имеете ввиду про защиту от модификаций из другого потока? Можно модифицировать в любом потоке.
Ну она спасёт, если сделать
var handler = Thread.VolatileRead(ref changeDevNum);
if(handler!=null)
handler(num);
Т.к. в противном случае по стандарту, компилятор может соптимизировать код удалив локальную переменную, но по факту такого нет ни в Mono, ни в .Net
Просто такой вызов действительно может вызвать NullReferenceException.
Вызов события производят обычно таким образом

var handler = changeDevNum;
if(handler !=null)
handler(num);

Ну или в C# 6.0 handler?.Invoke(num).

Information

Rating
Does not participate
Registered
Activity