Dot-Net
在 C++/CLI 中創建時初始化靜態字典
今天我看到了創建靜態字典並初始化它的 C# 程式碼:
public static readonly Dictionary<string, string> dict = new Dictionary<string, string>() { {"br","value1"}, {"cn","value2"}, {"de","value3"}, };但是當我決定為 C++/CLI 編寫相同的程式碼時,發生了錯誤。這是我的嘗試:
static System::Collections::Generic::Dictionary<System::String^, System::String^>^ dict = gcnew System::Collections::Generic::Dictionary<System::String^, System::String^>( ) { {"br","value1"}, {"cn","value2"}, {"de","value3"}, };我可以這樣做嗎?如果可以,怎麼做?
C# 3.0 及更高版本允許使用者定義“初始化程序”;對於集合,這是一系列元素,對於字典,這些元素被簡化為鍵和值。據我所知,C++.NET 沒有這種語言功能。看到這個問題:它非常相似:Array initialization in Managed C++。數組初始值設定項是 C++ 中唯一的此類初始值設定項;其他集合不在 C++ 中提供它們。
基本上,您的主要選擇是聲明一個靜態建構子並在那裡初始化您的字典。