首先,我會給一些背景信息,以便這個問題並非完全沒有背景:在同一個對象存儲多種類型
我寫一個程序,它需要在二進制文件,其中我知道格式讀取/佈局。這些文件的大部分都包含「結構」,每個文件的佈局都存儲在文件頭中。每個結構體都包含可以是結構體或「基本」類型的字段(它們不是結構體,可以是值或參考類型,如float
或String
或Vector3
)。
我不需要訪問這些文件中的大部分數據,所以我不必爲當前項目定義所有可能的結構,但是我必須定義手動執行這些操作會很乏味並且耗時。
我的問題是,這些結構中有非常多的數量(2500多個不同的結構,儘管只有文件中出現的結果在該文件的頭文件中定義)。我希望能夠閱讀它們,而不必手動定義每個數據,從而以相同的方式提供所有數據。我現在的想法是,我要創建這樣一個類:
class Struct{
StructDefinition _def;
List < Field > _fields;
...
}
在現場類,我需要能夠同時存儲結構和基本類型(或更重要的參考和值類型)。有沒有辦法做到這一點,而不是把所有東西都變成object
,然後在需要時將它轉換爲正確的類型?此外,這是閱讀這些文件的最佳方式,還是有更好的方法?
讀入文件只是問題的開始。你必須接下來處理它們。假裝你已經將它們讀入你定義的結構中 - 現在編寫處理該結構的代碼 - 查看它是簡單的還是困難的,明顯的還是令人困惑的。您可能會改變主意使用什麼數據結構。 – 2010-07-27 01:06:06
你提出了一個很好的觀點。我沒有想過如何使用它。我想我不得不犧牲一些可用性,如果我不想手動定義的東西。 – 2010-07-27 03:12:24