D中的C#式名称运算符?

前端之家收集整理的这篇文章主要介绍了D中的C#式名称运算符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
C#6( https://msdn.microsoft.com/library/dn986596.aspx)中有一个“nameof”运算符. D有模拟吗?或者一些构造来模仿它?

解决方法

我相信 stringof功能大致相同.例如,与该链路上第一个C#示例的D模拟是:
void f(string s) {
  if (s == null) throw new Exception(s.stringof ~ " is null!");
}

还有std.traits.fullyQualifiedName.它在罐头上做了它的说法:

module mymodule;

import std.traits : fullyQualifiedName;

class MyClass { int myvar; }

pragma(msg,MyClass.myvar.stringof); // myvar
pragma(msg,fullyQualifiedName!(MyClass.myvar)); // mymodule.MyClass.myvar

正如第一个链接指出的那样,fullQualifiedName可能更适合于编译时代码生成,它有助于尽可能具体,以避免与本地符号发生冲突.

原文链接:https://www.f2er.com/csharp/243541.html

猜你在找的C#相关文章