Types themsleves cannot be static in C# yet. However, you can make your methods and fields static and then use them from anywhere. For me that would achieve that same purpose like a module in VB. And in fact this is what happens at the IL level. When you make modules in VB they are just converted into classes with all the methods and fields in them set to "static". For example, if I have a method Add in my Module1 as:
Public Function add(ByVal x As Integer, ByVal y As Integer) As Integer Return x + y End Functionit
Shared in VB is equivilent to static in C#. The concept of modules in VB comes from old VB versions and is now there only for backwards compatibility reasons. In the old versions, I rememeber that while doing the win32api programming we could place our callback functions only in modules, not in classes.