"Why are strings in C# immutable?"
Your answer doesn't really go with the question. It seems to me what you'd really want to ask (for the answer you gave) is, "How do you create a string that you can change?" This gets into the differences between immutable strings and StringBuilders.
"What is DLL Hell, and how does .NET solve it?"
The important distinction between native DLLs and .Net DLLs is that native DLLs do not have versioning information written into them, and when one with the same name and target path is copied onto the hard drive, it replaces the old DLL, hence the versioning conflict. My understanding is there's potentially this same problem with .Net DLLs, but .Net makes it possible within the GAC to have multiple versions of the same *shared* DLL, and versioning information is written into the DLL, so that the runtime can differentiate between them.
"How are methods overloaded?"
Your description is correct, but I thought it important to point out that overloading methods have the same names as the methods they're overloading, though their signatures (their parameter list, and return parameter) can be different.
"What is the execution entry point for a C# console application?"
The answer "the Main method" is basically correct, but there's too little information. It's not just a method called Main. Multiple classes could have a method called Main. It's a static method that is public as well. That information is important, since there can be only one of these.
Keep Up with TechRepublic