It seems to me that a type declaration is implicitly a static member .
Because if you have a class:
class Foo { public class Bar { } }
You cannot access the Bar class with:
Foo f = new Foo(); Bar b =new f.Bar();
(I'm not even sure how to write it to make sense).
If you want to access the Bar class, you will need to do the following:
Bar b = new Foo.Bar()
You access it through a class, not an instance. facility
Therefore, Bar is a static member of Foo .
source share