Как не надо писать код
От: AlexNek  
Дата: 08.04.11 21:59
Оценка: 3 (2) -2
Что то часто мне стал попадаться код в который сразу не врубишься, при этом код делает свою задачу правильно. Предлагаю постить сюда ваши образчики и комментарии.

        public void WriteTransformation(ref byte[] buffer, ref int bufferLength, WriteByteHandler writeByteHandler)
        {
            if (writeByteHandler != null)
            {
                bufferLength = 1 + Math.Min(Math.Max(bufferLength, 0), (buffer != null) ? buffer.Length : 0);

                byte[] newBuffer;

                if (bufferLength - 1 < ((buffer != null) ? buffer.Length : 0))
                {
                    newBuffer = buffer;
                }
                else
                {
                    newBuffer = new byte[bufferLength];

                }

                for (int i = bufferLength - 1; i > 0; i--)
                {
                    if (newBuffer != null) if (buffer != null)
                            newBuffer[i] = buffer[i - 1];
                }

                if (newBuffer != null) newBuffer[0] = PREFIX;

                buffer = newBuffer;
            }
        }

Самое смешное в том, что часть строки я прочел как
bufferLength = .... Math.Max(bufferLength, 0), (buffer != null) ? buffer.Length : 0

и долго не мог врубиться как же оно работает

Интересно сколько времени вам понадобилось, что бы понять как функция точно работает?
avalon 1.0rc3 rev 380, zlib 1.2.3

04.05.11 09:32: Перенесено модератором из '.NET' — TK
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.