TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C# Namespace Examples

This C# article describes the use of namespaces. It shows namespaces in directives and nests them.

Namespace. A namespace is an organization construct.

It helps us find and understand how a code base is arranged. Namespaces are not essential for C# programs. They are usually used to make code clearer.

Example. This example has namespaces with the identifiers A, B, C, D, E, and F. Namespaces B and C are nested inside namespace A. Namespaces D, E, and F are all at the top level of the compilation unit.

In the Program class, notice how the Main entry point uses the CClass, DClass, and FClass types. Because the using A.B.C and using D directives are present in namespace E, the Main method can directly use those types.

Also: With FClass, the namespace must be specified explicitly because F is not included inside of E with a using directive.

C# program that demonstrates namespace use

using System;
using A.B.C;

namespace E
{
    using D;

    class Program
    {
	static void Main()
	{
	    // Can access CClass type directly from A.B.C.
	    CClass var1 = new CClass();

	    // Can access DClass type from D.
	    DClass var2 = new DClass();

	    // Must explicitely specify F namespace.
	    F.FClass var3 = new F.FClass();

	    // Display types.
	    Console.WriteLine(var1);
	    Console.WriteLine(var2);
	    Console.WriteLine(var3);
	}
    }
}

namespace A
{
    namespace B
    {
	namespace C
	{
	    public class CClass
	    {
	    }
	}
    }
}

namespace D
{
    public class DClass
    {
    }
}

namespace F
{
    public class FClass
    {
    }
}

Output

A.B.C.CClass
D.DClass
F.FClass

Allowed namespace type names. In addition to using the normal alphanumeric names for namespaces, you can include the period separator in a namespace. This is a condensed version of having nested namespaces.

Tip: Try changing namespace F into namespace F.F. Then modify the Main method to have the extra namespace as well.

Execution. What effect do namespaces have on the execution of your code? There is no performance impact because namespaces do not add complexity to the code itself, just to how it is organized in the source files.

So: At the level of the intermediate language, the namespaces add no computational burden.

However: Namespaces will increase the size of the executable file and the metadata. This is not usually worth considering.

Summary. Conceptually, namespaces are an organizational construct that we use to formally change the way code is arranged. Using namespaces, we provide hints about ownership, programmer responsibility and intent.

Thus: A namespace provides an extra layer of information about the enclosed source text.


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf