2015-10-04 6 views

Antwort

10

Ich glaube, stringof funktioniert auf die gleiche Weise. Zum Beispiel dieser Verbindung ein D analog zu dem ersten C# Beispiel an ist:

void f(string s) { 
    if (s == null) throw new Exception(s.stringof ~ " is null!"); 
} 

auch dort std.traits.fullyQualifiedName ist. Es tut, was es auf der Dose sagt:

module mymodule; 

import std.traits : fullyQualifiedName; 

class MyClass { int myvar; } 

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

Wie das erste Glied weist darauf hin, fullyQualifiedName für besser geeignet sein kann, die Codegenerierung Compile-Zeit, wo es so genau wie möglich zu sein, hilft mit lokalen Symbolen zu vermeiden clashing .