What is a Namespace in C#?

πŸ’‘ Concept: Namespace in C#

A namespace in C# is a way to logically group classes, interfaces, structs, enums, and delegates. It helps avoid naming conflicts and organizes code into manageable sections.

πŸ“˜ Quick Intro to Namespace

Namespaces are fundamental in C# to ensure that code elements don't conflict. For example, two classes with the same name can exist in different namespaces.

🧠 Analogy: Namespace

Imagine namespaces like folders on your computer. You can have a file named Invoice.txt in two different folders. Similarly, you can have a class Invoice in two different namespaces without any clash.

πŸ”§ Technical Explanation

  • Namespaces are declared using the namespace keyword.
  • They can be nested to form hierarchical structures.
  • The using directive allows access to a namespace without specifying its full path.
  • Helps avoid class name collisions in large projects or third-party libraries.
  • Common namespaces include System, System.Collections.Generic, etc.

🎯 Use Cases for Namespace

  • Organizing related classes (e.g., MyApp.Services and MyApp.Models).
  • Preventing naming collisions with other libraries.
  • Grouping reusable components for modular design.
  • Maintaining cleaner and scalable architecture.
  • Providing structure to large enterprise-level applications.

πŸ’» C# Code Example: Namespace

namespace MyApp.Services {
    public class EmailService {
        public void Send(string to) {
            Console.WriteLine($"Sending email to {to}");
        }
    }
}

namespace MyApp.Models {
    public class User {
        public string Name { get; set; }
    }
}

❓ Interview Q&A

Q1: Why are namespaces used in C#?
A: To organize code and prevent name conflicts.

Q2: Can namespaces be nested?
A: Yes, nested namespaces provide more structure.

Q3: What does the using directive do?
A: It allows use of classes without writing the full namespace path.

Q4: What is the global namespace?
A: It is the default unnamed namespace for unqualified types.

Q5: Can two classes with the same name exist in different namespaces?
A: Yes, that’s one of the key benefits of namespaces.

Q6: How do you access a class from a different namespace?
A: By using its fully-qualified name or the using statement.

Q7: Is System a namespace?
A: Yes, it’s a base namespace in .NET.

Q8: What are some common .NET namespaces?
A: System, System.IO, System.Linq, etc.

Q9: Can a file include multiple namespaces?
A: Yes, a file can define multiple namespaces.

Q10: Can namespaces contain interfaces and enums?
A: Yes, along with classes, structs, and delegates.

πŸ“ MCQs

Q1. Why are namespaces used in C#?

  • To speed up compilation
  • To format code
  • To organize and avoid naming conflicts
  • To declare memory

Q2. Which keyword is used to declare a namespace?

  • package
  • module
  • namespace
  • folder

Q3. Can namespaces be nested?

  • No
  • Only two levels
  • Yes
  • Only with classes

Q4. What does the using directive do?

  • Creates a namespace
  • Imports libraries
  • Provides access to a namespace
  • None of the above

Q5. Which of the following is a valid .NET namespace?

  • Net.IO
  • Sys.IO
  • System.IO
  • Microsoft.IO

Q6. Can a class exist without a namespace?

  • No
  • Yes, in the global namespace
  • Only in System
  • Only in nested

Q7. What is a fully qualified name?

  • Method signature
  • Class with parameters
  • Complete name including namespace
  • Name with return type

Q8. Can two classes have the same name in different namespaces?

  • No
  • Only with inheritance
  • Yes
  • Only static classes

Q9. Which statement is true about using directive?

  • It creates namespaces
  • It declares variables
  • It allows access without full name
  • It optimizes performance

Q10. Is System a namespace?

  • No
  • Only in VB
  • Yes
  • It is a class

πŸ’‘ Bonus Insight

Namespaces are critical in building scalable software. Good namespace structure reflects your application architecture, simplifies dependency injection, and reduces cognitive load when reading code.

πŸ“„ PDF Download

Need a handy summary for your notes? Download this topic as a PDF!

πŸ”™ Previous Topic

πŸ”œ Next Topic

πŸ’¬ Feedback
πŸš€ Start Learning
Share:

Tags: