Добрый день.
Гарантирует ли C# 2008 порядок вычисления аргументов функции?
То есть безопасно ли писать так:
BinaryReader br;
void f(byte a, byte b, byte c)
{
}
// .....
f(br.ReadByte(), br.ReadByte(), br.ReadByte());
Здравствуйте, dennis.yolkin, Вы писали:
DY>Гарантирует ли C# 2008 порядок вычисления аргументов функции?
DY>То есть безопасно ли писать так:
DY>DY>BinaryReader br;
DY>void f(byte a, byte b, byte c)
DY>{
DY>}
DY>// .....
DY>f(br.ReadByte(), br.ReadByte(), br.ReadByte());
DY>
Да гарантирует. Если не считать некоторых ошибок.
http://blogs.msdn.com/ruericlippert/archive/2009/11/25/9987439.aspx
Здравствуйте, dennis.yolkin, Вы писали:
DY>Гарантирует ли C# 2008 порядок вычисления аргументов функции?
DY>То есть безопасно ли писать так:
DY>BinaryReader br;
DY>void f(byte a, byte b, byte c)
DY>{
DY>}
DY>// .....
DY>f(br.ReadByte(), br.ReadByte(), br.ReadByte());
Но всё-таки перед тем, как так писать, подумайте о тех, кто будет ваш код отлаживать
В большинстве случаев, подобный стиль вызовет поток нецензурной лексики. Хотя, признаюсь, иногда выглядит очень изящно