пятница, 28 февраля 2014 г.
четверг, 6 июня 2013 г.
Использование изменяемых структур в свойствах классов
Блог переехал. Актуальная версия поста находится по адресу: http://aakinshin.net/ru/blog/dotnet/mutable-structures-as-property/.
все совпадения абсолютно случайны.
Занимался я как-то раз улучшением кода проекта. И наткнулся вот на такие строчки:
public class Image
{
public Rectangle Bounds;
}
«Ай-яй-яй! Публичное поле в классе, как же нехорошо-то! Нужно срочно превратить его в свойство!» — подумал я. И превратил:
public class Image
{
public Rectangle Bounds { get; set; }
}
Сделал я такое невинное изменение и сразу пошёл дальше рефакторить — ведь ещё такое количество кода нуждалось в улучшении! Ну а в конце решил я запустить на всякий случай Unit-тесты. Какого же было моё удивление, когда половина тестов упала. «Да как же так! Ведь я особо-то ничего и не менял!» Ну, поехали разбираться.
понедельник, 3 июня 2013 г.
Ручное размещение полей структуры в C#
Начнём с задачки. Имеется структура:
struct MyStruct
{
public Int16 Value;
}
Требуется научится получать младший байт поля Value. Но сделать это нужно так, чтобы обеспечить максимально возможную производительность.