1. needs to be static access modifier is irrelevant.
2. depends on what you're defining. classes are internal, members are private in their default state.
3. what?
4. string, int, float, bool, and the others are aliases for the System.String, System.Int32, System.Single, System.Boolean and so on...
5. yea if its a nullable type
6. value types do not have to be initialized w/ new in order to use them. if they contain reference types those will be null and will need to be initialized before use.