C# Compiler Error
CS0431 – Cannot use alias ‘identifier’ with ‘::’ since the alias references a type. Use ‘.’ instead
Reason for the Error
You’ll get this error in your C# code when you have used :: with an alias while referencing a type.
For example, lets try to compile the below code snippet.
using System; namespace DeveloperPublishNamespace { using A = Class1; public class Class1 { public class Class2 { public static void Function1() { Console.WriteLine("Inside Function1"); } } } class Program { static void Main(string[] args) { A::Class2.Function1(); Console.WriteLine("Hello World!"); } } }
You’ll receive the error code CS0431 when you try to compile the above C# program because we have defined the alias “A” for the class Class1 the nested class’s Function1 is called using the alias A and the :: operator.
Error CS0431 Cannot use alias ‘A’ with ‘::’ since the alias references a type. Use ‘.’ instead. DeveloperPublish C:\Users\Senthil\source\repos\ConsoleApp4\ConsoleApp4\Program.cs 20 Active
Solution
You can fix this error in your C# program by using the “.” operator instead of “::” operator as shown below.
using System; namespace DeveloperPublishNamespace { using A = Class1; public class Class1 { public class Class2 { public static void Function1() { Console.WriteLine("Inside Function1"); } } } class Program { static void Main(string[] args) { A.Class2.Function1(); Console.WriteLine("Hello World!"); } } }