2015-10-04 14 views

Trả lời

10

Tôi tin rằng stringof hoạt động nhiều theo cùng một cách. Ví dụ: D tương tự với ví dụ C# đầu tiên tại liên kết đó là:

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

Ngoài ra còn có std.traits.fullyQualifiedName. Nó không những gì nó nói trên hộp:

module mymodule; 

import std.traits : fullyQualifiedName; 

class MyClass { int myvar; } 

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

Là mắt xích đầu tiên chỉ ra, fullyQualifiedName có thể thích hợp hơn cho việc tạo mã thời gian biên dịch, nơi nó giúp được càng cụ thể càng tốt để tránh xung đột với các biểu tượng địa phương .