nameof won´t reflect using


I have an alias within my source-code file like this:


using System;               
using SomeClass = NewClass;
public class Program
    public static void Main()
public class NewClass { }

I need this because the names of my classes changed and now I need to compile for both the old and the new class-structure symultaneously.

When I run that code I get "SomeClass" but I’ d expected "NewClass". Why doesn’t nameof reflect the alias using the using-directive in this case?


It’s because the nameof keyword is meant to "get the name of an identifier", without evaluating its value or anything else, like said in docs:

A nameof expression is evaluated at compile time and has no effect at run time.

More info here

Answered By – LoRdPMN

Answer Checked By – Marilyn (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.