2

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

4 Answers 4

7

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.

Sign up to request clarification or add additional context in comments.

2 Comments

thanks dear friend.you mean if I place SqlConnection inside that method and open and close it that connection would open and close within each thread and every thread does not affect connection for other thread?
@Kerezo Yes, that is absolutely correct: each executing thread gets its own variable, no matter how many threads get at it concurrently.
4

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.

2 Comments

you said The fact that it's a static method in a static class is irrelevant but in extension methods we do this
@Kerezo: What do you mean by "we do this"? Even in extension methods, local variables are still local variables...
0

temp has one instance per call.

BTW I'm missing possibility to define static local variables in static methods as in C++.

Comments

0

The temp variable, even in a static method, has to be declared a static, otherwise it is just created locally in that instance, then blown away when the method call ends.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.