Q
泛型類型定義
1
A
回答
1
當我測試(使用Visual Studio 2010 SP1),這不會崩潰的編譯器,它只是一個語法錯誤。
#using <System.dll>
int main(void)
{
System::Console::WriteLine((System::Collections::Generic::List<>::typeid)->ToString());
return 0;
}
試圖編譯給出:
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01
for Microsoft (R) .NET Framework version 4.00.30319.269
Copyright (C) Microsoft Corporation. All rights reserved.
generictypeid.cpp
generictypeid.cpp(5) : error C2976: 'System::Collections::Generic::List' : too few generic arguments
c:\windows\microsoft.net\framework\v4.0.30319\mscorlib.dll : see declaration of 'System::Collections::Generic::List'
有關解決方法,請參閱my answer to a related question "How to check a generic type in C++/CLI?"
+0
因此,直接訪問類似C#中的泛型類型定義在C++/CLI中根本不可能? – Antineutrino 2012-08-07 05:59:11
+1
@Authutrino:我不知道任何。抱歉。 – 2012-08-07 06:11:19
0
下面的工作對我來說:
auto x = gcnew Generic::List<bool>;
if (x->GetType()->GetGenericTypeDefinition() == Generic::List::typeid)
{
System::Console::WriteLine("The generic type is " + Generic::List::typeid); // or x->GetType::GetGenericTypeDefinition()
System::Console::WriteLine("The specific type is " + Generic::List<bool>::typeid); // or x->GetType()
}
這就產生輸出
通用類型是System.Collections.Generic.List`1 [T]
具體類型System.Collections.Generic.List`1 [System.Boolean]
相關問題
- 1. 定義類泛型類型
- 2. 自定義泛型泛型類
- 3. 泛型類型和泛型類型定義有什麼區別?
- 4. Java類定義泛型
- 5. 具有泛型類型約束和繼承類型的泛型類定義?
- 6. 的Java界泛型類型定義
- 7. 定義泛型函數類型
- 8. Java - 遞歸泛型類型定義
- 9. 如何在泛型中定義泛型?
- 10. 的Java泛型類型泛型類型
- 11. 泛型類型的泛型?
- 12. (開放泛型類型)泛型類型,沒有指定參數
- 13. 如何檢查泛型類型定義是否繼承另一個泛型類型定義
- 14. 如何定義基本類型的泛型類型限制?
- 15. 定義對可空基本類型的泛型類型限制
- 16. Autofac約定泛型類型
- 17. Java泛型:如何爲泛型類指定類類型?
- 18. 泛型在泛型和實現類中的paraemeterised定義理由
- 19. 是否有可能沒有定義兩個泛型類型的泛型類型定義的擴展方法,並返回另一個泛型類型<>
- 20. 泛型類型
- 21. 泛型類型
- 22. 泛型類型
- 23. 泛型類型
- 24. 泛型類型
- 25. 爲什麼我需要在泛型類中明確定義泛型參數的泛型類型?
- 26. 泛型類型類
- 27. 如何爲泛型類指定泛型集合類型?
- 28. 如何使用泛型類型的泛型列表泛型類
- 29. 嵌套泛型泛型類
- 30. 泛型類和泛型方法,什麼是定義類泛型類在下面的例子
哪個版本編譯器?如果從命令行運行cl.exe,它是否會提供任何錯誤消息? – 2012-08-06 15:16:29