1
我是.net新手,正在尋找關於如何最好地創建只讀對象結構的建議。這些結構在編譯時進行佈置,不會改變。我的目標是這樣的:在.net中創建只讀嵌套對象
Public Structure CatPair
Public code, name As String
End Structure
Public Structure Category
Public code, name As String
Public subcategories() As EpfPair
End Structure
Public ReadOnly categories() As Category = {
New Category With {.code = "Code1", .name = "cat title 1", .subcategories = Nothing
},
New Category With {.code = "Code2", .name = "cat title 2", .subcategories = Nothing
},
New Category With {.code = "Code3", .name = "cat title 3", .subcategories = Nothing
},
New Category With {.code = "Code4", .name = "cat title 4", .subcategories = {
New CatPair With {.code = "subC1", .name = "subcat title 1"},
New CatPair With {.code = "subc2", .name = "subcat title 2"},
New CatPair With {.code = "subc3", .name = "subcat title 3"}
}
},
New Category With {.code = "Code5", .name = "Cat title 5", .subcategories = Nothing
}
}
因此,對象實際上是常數,其中一些有子類別,有些則不是一個嵌套表。在這裏,我的目標是:
- 確保一切是隻讀的,並且
- 它的方式實現(如果可能的話),以便不使用此代碼我的ASP.net頁不承擔任何顯著每次加載頁面時初始化對象的開銷。我已經在App_Code文件夾中的模塊中聲明瞭該對象,因此我不確定編譯器如何處理不接觸該對象的頁面。
你應該使用的術語是「不可變的」。 – Oded
如果這是ASP.NET,則將其標記爲這樣。自從我做了ASP.NET以來,已經有一段時間了,所以我不記得確切的術語,但是在app.startup(而不是session.startup)中創建了類別。然後,所有會話和所有頁面僅引用相同的單個類別。 – Paparazzi