I have some questions about behaviour of static members:
1) Is there a difference when initializing static fields and static constructors? As of my knowledge static fields are initialized with program execution. Does members of static constructors behave same way, or they are initialized on first use:
MyClass.myStaticField;
or I must initialize MyClass first:
Myclass m = new MyClass(); // static constructor is called
MyClass.myStaticField; // and after that
2) As I do recall, static fields are not garbage collected? So is this a reason, why I should not be instanciating static methods? When I've read about this topic, most of the people claims, that you should use static methods when, you can choose between static and non-static.
3) Is there any issues that must be pointed when you derive a class from parent class having static constructor?
4) Just of a curiosity, can you dispose static member?