Порядок вычисления аргументов функции
От: dennis.yolkin  
Дата: 05.04.10 14:50
Оценка:
Добрый день.
Гарантирует ли C# 2008 порядок вычисления аргументов функции?
То есть безопасно ли писать так:

BinaryReader br;
void f(byte a, byte b, byte c)
{
}
// .....
f(br.ReadByte(), br.ReadByte(), br.ReadByte());
Re: Порядок вычисления аргументов функции
От: GlebZ Россия  
Дата: 05.04.10 14:58
Оценка: +1
Здравствуйте, 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
Re: Порядок вычисления аргументов функции
От: _FRED_ Черногория
Дата: 05.04.10 15:01
Оценка: 1 (1) +1
Здравствуйте, 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());


Но всё-таки перед тем, как так писать, подумайте о тех, кто будет ваш код отлаживать
В большинстве случаев, подобный стиль вызовет поток нецензурной лексики. Хотя, признаюсь, иногда выглядит очень изящно
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.