當在AnObject.tupleof結果循環,我可以得到大小或值作爲一個字符串,但我可以在元組項目(編輯),特別是原來的數據名字來取得更先進的相關信息(如源文件中所寫)?背景的想法是將此屬性用作RTTI。可以檢索class.tupleof()項目的名稱嗎?
1
A
回答
2
.tupleof
返回值元組這是不足以獲得字段名稱。也沒有「數據名稱」這樣的東西,因爲D在數據(==值)和字段名稱之間沒有任何關係,它只是以其他方式存在。
一些內置的特質可以幫助雖然:
module test;
class Experiment
{
class Nested
{
}
Nested nested;
int plain;
void delegate() skipped;
}
import std.traits : isCallable, fullyQualifiedName;
import std.typetuple : Filter;
template allFields(alias T)
{
private template combinedFilter(string name)
{
// filter out nested type definitions and methods
// side effect: will filter out delegate/function pointer fields, don't know if listing those makes sense
mixin("alias field = " ~ fullyQualifiedName!T ~ "." ~ name ~ ";");
enum combinedFilter = !is(field) && !isCallable!field;
}
alias allFields = Filter!(combinedFilter, __traits(allMembers, T));
}
void main()
{
pragma(msg, allFields!Experiment);
}
你可以用與此DPaste飛這個代碼實驗。
也許有一個更簡單的解決方案,但考慮到你的問題的措辭,大多數通用的方法和D靜態內省電源的小樣本可能會更好地使用。
希望我這個時候已經理解了這個問題。
+0
在我的問題中有一個錯誤,遇到的問題也是檢索每個元素的名稱,如實驗類中所寫,所以* a *和* NestedBase *。否則你的答案是有效的。 elem.stringof返回元素... – babu67 2013-03-14 14:39:24
+0
編輯:新的答案 – 2013-03-14 16:57:59
相關問題
- 1. 檢索不同名稱的POST項目
- 2. 從sitecore項目檢索字段名稱
- 3. WiX可以引用名稱中包含句點的項目嗎?
- 4. 我可以檢索發現客戶端實例ID /名稱嗎?
- 5. 你能以編程方式檢索TabBarApp中的選項卡的名稱嗎?
- 6. 我們可以在最後更改iphone項目的包顯示名稱嗎?
- 7. 從xml文件檢索主要記錄/項目標籤名稱
- 8. 按名稱搜索項目,並顯示
- 9. 我可以使用「index」作爲servlet名稱的名稱嗎?
- 10. 我可以檢索SonarQube上的哪個用戶分析項目嗎?
- 11. 是否可以從數據綁定項中檢索屬性名稱?
- 12. Windows DLL可以檢索自己的文件名嗎?
- 13. 我可以在代碼中獲取DataMember名稱嗎?在一個項目中
- 14. 我可以爲重置索引指定一個名稱嗎?
- 15. JavaScript可以檢索Web根目錄之上的文件嗎?
- 16. 項目命名約定:[公司] [項目名稱]與[公司項目名稱]
- 17. 從哪個表格可以檢索客戶名稱?
- 18. 我如何可以檢索字段名稱
- 19. 是否可以從Java HTTPServletRequest中檢索表單名稱?
- 20. xcode項目名稱
- 21. Python名稱項目
- 22. 我們可以更改Maven默認目錄(.m2)名稱嗎?
- 23. PersistedModel關係名稱可以與屬性名稱相同嗎?
- 24. 我可以找到可以計算列名稱X的表嗎?
- 25. 我可以安全地重命名我的Subversion項目嗎?
- 26. 更改項目名稱和包名稱
- 27. 我可以在JPA本機SQL查詢中檢索列名嗎?
- 28. 您可以從System.Net.Sockets.TcpClient中檢索主機名和端口嗎?
- 29. Django的:項目名稱
- 30. 是否可以從命令行告訴Sonar項目名稱?
你需要什麼樣的信息? 您可以使用std.traits.FieldTypeTuple模板作爲靜態數組,您可以使用foreach循環。 – yaz 2013-03-14 11:20:38
我需要原始數據名稱 – babu67 2013-03-14 14:41:23
您是否通過「原始數據名稱」表示實際變量/對象名稱?你想在OT的情況下獲得「AnObject」字符串? – DejanLekic 2013-03-16 11:54:25