我有一些類型的結構是出於性能原因並具有一些共同性。我想知道我是否可以將它們重構爲開放式結構 - 如果我可以的話,如果我期望有任何問題。打開類型可以是一個結構?
4
A
回答
5
是的,你可以。框架庫提供的一些通用類型,如KeyValuePair<TKey, TValue>
,確實是structs
。
4
更新:顯然通過「打開類型」,你不是指與「打開類型」的C#規範定義相同的東西。你的意思是「通用類型」。
是的,結構可以是通用的。
回答你問題的第二部分:我不知道你有什麼樣的「問題」。你能給我一個你發現有問題的例子嗎?
原來的答覆,假設你實際上問的開放類型:
的C#規範清楚這一點:
•一個 類型參數定義了一個開放式。
•陣列類型是開放類型if和 僅當其元素類型是開放的 類型時。
•構造類型是開放型 當且僅當其 類型參數中的一個或多個是開放類型。 A 構造的嵌套類型是當且僅當其包含類型的一個或多個 類型自變量或類型參數 是開放的 類型時,構造的嵌套類型是開放的 類型。
所以你去了。結構類型是一個開放類型當且僅當它或它的封閉類型是一個類型參數爲開放類型的泛型類型。例如:
struct S<T>
{
S<T> s1; // open struct type
Nullable<S<T>> s2; // another open struct type
}
class O<V>
{
class C<U> where U : struct
{
struct R
{
U u; // open type constrained to be value type
R r1; // open struct type; this is O<V>.C<U>.R
O<V>.C<S<U>>.R r2; // another open struct type.
O<int>.C<S<V>>.R r3; // another open struct type
}
}
}
我們可以不斷整天開放結構類型。
相關問題
- 1. 我們可以在類型上定義一個結構嗎?
- 2. C++結構是否可以接受另一個結構?
- 3. 打開一個長的數據結構,以廣泛的矩陣結構
- 4. 結構圖結尾。可以忽略一個類型,而驗證容器
- 5. 可以與開關一起使用的自定義結構/類型()
- 6. 如何從另一個類似類型結構memcpy結構
- 7. 測試應用程序是否可以打開特定類型?
- 8. 功能的返回類型可以是結構嗎?
- 9. 是否可以根據文件內容創建結構類型?
- 10. 是否可以分配兩種不同類型的結構?
- 11. C++的typedef不是一個類,結構或聯合類型
- 12. 可以是一個類型的成員是一個目標?
- 13. 打開一個類型列表
- 14. 打開一個類型變量
- 15. 傳遞一個類型的結構C++
- 16. 八度:我可以打印一個結構的格式嗎?
- 17. 結構類型的二維數組是否可以像NULL指針一樣?
- 18. 鑄造一個指向一個結構到另一個結構類型以較小的一些領域
- 19. 可以構建什麼類型結構的綁定工作,
- 20. 由不可變類型構成的結構有可能有一個循環嗎?
- 21. 如果一個結構體是一個值類型,爲什麼我可以新建它?
- 22. 去和另一個結構中的自定義結構類型
- 23. 分配一個結構來「結構相同」類型
- 24. Go結構類型在一個已經鍵入的結構上
- 25. 結構類型
- 26. 可以修改一個結構嗎?
- 27. 檢測泛型類型是否打開?
- 28. 打印一個結構
- 29. 打印在一個結構
什麼是「開放式結構」在第一個地方? – 2010-12-22 18:32:48
你的意思是一個泛型? – 2010-12-22 18:33:24
正確 - 通用打開類型。即公共課Box是公共結構框? –
Cort
2010-12-22 18:35:02