nameof 不会反映使用

Him*_*ere 5 c# using nameof

我的源代码文件中有一个别名,如下所示:

MyClass.cs

using System;               
using SomeClass = NewClass;
    
public class Program
{
    public static void Main()
    {
        Console.WriteLine(nameof(SomeClass));
    }
}
public class NewClass { }
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为我的类的名称发生了变化,现在我需要同时为旧的和新的类结构进行编译。

当我运行该代码时,我得到了"SomeClass"但我预料到的"NewClass"。在这种情况下,为什么不nameof使用using-directive反映别名?

LoR*_*PMN 3

这是因为nameof关键字的目的是“获取标识符的名称”,而不评估其值或其他任何内容,如文档中所述:

nameof 表达式在编译时计算,在运行时不起作用。

更多信息请点击此处