C# Extern Alias Example

This C# article shows the extern keyword. It provides an example program that uses extern.
Extern eliminates conflicts. Suppose we have 2 class libraries that contain a class that has the same name. For example, ClassLibrary1 and ClassLibrary2 both introduce the same class.
With extern, we can use both of those classes at once. This keyword has limited use in most environments. It is not an important one to study.Class
First, create 2 Class Library projects and have them specify the same name class with no containing namespace. Next, compile them and in Visual Studio change the Aliases fields to X and Y.

Then: You can create the main program, the console application, that specifies the extern aliases.

And: If the compilation options in Visual Studio match the extern aliases, you can use those types in the same program.

C# program that uses extern alias syntax extern alias X; extern alias Y; using System; class Program { static void Main() { X.A._b = 1; Y.A._b = 2; Console.WriteLine(X.A._b); Console.WriteLine(Y.A._b); } } Contents of ClassLibrary1: C# public class A { public static int _b; } Contents of ClassLibrary2: C# public class A { public static int _b; } Output 1 2
Notes. The extern alias X and Y (above) are meaningless unless they match the settings you specify in Visual Studio. There they are mapped to the ClassLibrary1 and ClassLibrary2 DLL files.

Tip: You must specify the extern alias in your C# program, and also in the compilation system (Visual Studio).

Usage. In simple programs, the extern alias syntax is rarely useful. However, if you are developing a huge framework, it would definitely be useful.

Also: Extern is handy in large programs, or ones that use multiple versions of the same library at once.

Extern differentiates. This alias directive provides a way for us to specify the location of a class, not just its name. This means we can use a class A from many files with no conflicts.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Dot Net Perls