在静态类内部静态方法可变(variable in static methods inside sta

2019-09-18 08:51发布

请考虑以下代码:

1)public static class MyClass
2){
3)    public static DateTime MyMethod(DateTime dt)
4)    {
5)         DateTime temp = new DateTime();
6)         temp = dt.AddDays(1);
7)         return temp;
8)    }
9)}

是否temp变量例如每任何调用MyMethod ? 或者是因为它是在静态类内的静态方法只是一个实例temp变量在内存中分配?

谢谢

Answer 1:

temp既不是静态的,也不是一个实例变量,它是一个局部变量。 这绝对不要紧,在声明它的方法是静态的还是不:变量的作用域开始在其申报点,并在右大括号结束}在声明它的范围。 每一个执行线程,通过云MyMethod得到它自己的拷贝temp ,这是无形的可变范围之外的任何地方。



Answer 2:

是否临时变量例如每任何调用的MyMethod?

如果你的意思是“确实每次调用MyMethod得到一个单独的temp变量?” 那么答案是肯定的。

它是在一个静态类的静态方法就是无关的 - 这是一个局部变量,所以你在每次调用一个“新”的局部变量。



Answer 3:

temp有每次调用一个实例。

BTW我缺少的可能性来定义静态方法静态局部变量在C ++。



Answer 4:

临时变量,即使在静态方法,必须要声明一个静态的,否则它只是局部在该实例创建,然后吹走当方法调用结束。



文章来源: variable in static methods inside static class