The Namespace in C# has the following advantages
- It lets the developers to organise their code / classes
- Provides a better readability of the code and helps your understand how the code structure is formed specially in bigger projects.
The Namespace Alias Qualifier in C# lets the developers to use the alias name instead of the complete namespace name . The advantage of the Namespace Alias Qualifier is that it lets you use the alias name instead of a bigger namespace ( like Inner Namespaces ) and also helps to avoid the ambigous definitions of the classes .
For example
Take the below class as an example
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Namespace1 { class Student { public string StudentName { get; set; } } } namespace Namespace2 { class Student { public string StudentName { get; set; } } }
When both the Namespace1 and Namespace2 is referenced in the C# file , and trying to create an instance of Student , will cause the “Ambiguous name” error as shown in the screenshot below.
To avoid this error , we could use the :: operator to provide alias name for the namespace and use them accordingly.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { using stud1 = Namespace1; using stud2 = Namespace2; static class Program { static void Main() { var obj = new stud1 :: Student(); } } }