please consider this code :
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)}
Does temp
variable has instance per any calls to MyMethod
? or because it is in a static method inside static class just one instance of temp
variable allocate in memory?
thanks
temp
is neither a static nor an instance variable, it is a local variable. It absolutely does not matter whether the method in which it is declared is static or not: the variable's scope starts at the point of its declaration, and ends at the closing curly brace }
of the scope in which it is declared. Each executing thread that goes through MyMethod
gets its own copy of temp
, which is invisible anywhere outside the variable's scope.
Does temp variable has instance per any calls to MyMethod?
If you mean "does each call to MyMethod
get a separate temp
variable?" then the answer is yes.
The fact that it's a static method in a static class is irrelevant - it's a local variable, so you get a "new" local variable on each call.
temp
has one instance per call.
BTW I'm missing possibility to define static local variables in static methods as in C++.
临时变量,即使在静态方法中,也必须声明为静态,否则它只是在该实例中本地创建,然后在方法调用结束时被吹走。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.