假设您有以下代码:
static void Send(byte[] buffer, int offset, int count)
{
while (count > 0)
{
int size = sock.Send(buffer, offset, count);
if (size == 0) throw new EndOfStreamException();
offset += size;
count -= size;
}
}
VS
static void Send(byte[] buffer, int offset, int count)
{
int size;
while (count > 0)
{
size = sock.Send(buffer, offset, count);
if (size == 0) throw new EndOfStreamException();
offset += size;
count -= size;
}
}
我的老师告诉我,第二个会更有效率,但这是真的吗?
我做了一些测试并比较了汇编代码,它是平等的。
但总会如此吗?
提前感谢您的任何答案,如果之前有人问过我,我会道歉,但我真的不知道怎么称呼它。
答案 0 :(得分:1)
取决于编译器优化 - 但由于它是相同的范围(函数) - 实现(通常)是相同的。
只要您不在该行中实例化任何新内容,它就是函数范围内的局部变量。