From MSDN :
There is only one copy of the static member, regardless of how many instances of the class are created.
So, since your class is non-static, you will get multiple instances of your class, but they will refer to the same instance of the instance, one, common, static.
Note You should be VERY careful with code like the one above, because you can get multiple instances of the class that change the value of the common static member, which can lead to unexpected behavior, race conditions, corruption, etc.
If your intention is for the class to be singleton common, then mark the class itself as static so that you only ever have one in your heap at any time.
source share