Что то часто мне стал попадаться код в который сразу не врубишься, при этом код делает свою задачу правильно. Предлагаю постить сюда ваши образчики и комментарии.
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
и долго не мог врубиться как же оно работает
Интересно сколько времени вам понадобилось, что бы понять как функция точно работает?
04.05.11 09:32: Перенесено модератором из '.NET' — TK