名称不会反映使用

  • 本文关键字: c# using nameof
  • 更新时间 :
  • 英文 :


我在源代码文件中有一个这样的别名:

MyClass.cs

using System;               
using SomeClass = NewClass;

public class Program
{
public static void Main()
{
Console.WriteLine(nameof(SomeClass));
}
}
public class NewClass { }

我需要这个,因为我的类名改变了,现在我需要同时编译旧的和新的类结构。

当我运行代码时,我得到"SomeClass",但我期望"NewClass"。为什么nameof不反映别名使用using指令在这种情况下?

这是因为nameof关键字意味着"获取标识符的名称",而不计算其值或其他任何东西,就像在docs中所说的:

nameof表达式在编译时求值,在运行时没有影响。

更多信息在这里

你的具体问题是"为什么不呢?"但是,这里有一个"用什么来代替呢?"为你解答:)

typeof代替nameof

using System;               
using SomeClass = NewClass;

public class Program
{
public static void Main()
{
Console.WriteLine(typeof(SomeClass));
}   
}
public class NewClass { }

打印

NewClass

相关内容

  • 没有找到相关文章

最新更新