An example is worth a thousand stupid questions so:
public class OuterClass
{
public static class InnerClassEventArgs : EventArgs
{
public static int SomeInt;
}
}
and in a galaxy far far away:
public void SomeFunkyFunc()
{
OuterClass Instance1;
OuterClass Instance2;
Instance1.InnerClassEventArgs.SomeInt = 1;
Instance2.InnerClassEventArgs.SomeInt = 2;
//WHAT WOULD Instance1.InnerClassEventArgs.Someint == ?
}
Yes, I realize now that I’ve typed this that I’ve almost coded all I need to answer my own question. I’d rather not create a new project and go through the trouble if someone smarter than me knows off the top of their head.
Instance1.InnerClassEventArgs.SomeIntwould equal 2. Static fields are shared across all instances of the class — or as MSDN puts it:Note that your specific example won’t compile — you’ll get an error message that says “Cannot access static class ‘InnerClassEventArgs’ in a non-static context.”
You’d have to use the following code instead, which hopefully makes the behavior more understandable: