Shesh? How do you .NET development without knowing that? Are you migrating from VB?
In .NET the basic thing you need to know is that everything is modifiable for security; so new accessors references are created to handle "on the fly" or ease of access for the developers
PUBLIC and PRIVATE is self explanitory; if it's PUBLIC it's Visible, if it's PRIVATE it's NOT
SHARED is specific to the Class or Module, and allows the reference to be cascaded to other Classes or Modules without declaring an instance (As long as you don't have specific enumeration passing or object/class information)
OVERLOADS means that there is more then one Function with the same name, and it has different "parameters" this is so you can do the 16 different types of function/sub calls (which even though it's cool it's a little rediculous IMO)
SHADOWS is where the world gets fuzzy to learn; it basically Acts like OVERLOADS but it hides the function it's overloading and replace it with itself. So that it becomes the primary Function reference.
Really, .NET is best described in the way it handles EVENTS and Delegates; If you read on anything that's what you want to read on, and the copied some really cool features from old PASCAL like inline Sub routines within routines so you can make more readable code (even though I still think if your code is that long your doing something wrong and need to break it apart)
I do a lot of Delegates calling because I am C/VB/ASM guy and I view the universe a little different then IF THEN ELSE I like addressing and it's easier for me to calculate. So, VB.NET did EXTREAMLY well, there. I am very pleased with it. However, I of course found the one error which crashes the VB.NET framework; and the only other guy in the world that recreated it is in China and I can't read his messages (Thats right exactly 1 hit for my question from google) So, VB.NET still has some issues but overall good job.
Hope that helps.