1) MSDN documentation or a book on the language would provide information like this. (or ask on vbforums )

2) in reality, no assignments can be made outside of a method/property. So when you declare a variable at the class level, and give it a value where you declare it, that value assignment is actually going to be done in the constructor when the code actually runs.