Visual Studio 或 monodevelop 中的 C# 编译器是否会针对内存优化变量声明?
例如,在示例 1 中,C# 是否在每次 for 循环迭代中创建一个新的 4 字节内存?在示例 2 中,每个函数调用一个新的 4 字节内存?示例 3,每个类一个新的 4 字节内存?
C# 是否将所有 3 个示例优化为仅将一个 int 用于内存目的?
三个例子: 1:for循环内的第一个:
void testfunction(){
for(int j=0;j<100000;j++){
int x = j*2;
//x used for a lot of stuff
}
}
2:在for循环之外:
void testfunction(){
int x=0;
for(int j=0;j<100000;j++){
x = j*2;
//x used for a lot of stuff
}
}
3:函数外和for循环:
int x=0;
void testfunction(){
for(int j=0;j<100000;j++){
x=j*2;
//x used for a lot of stuff
}
}