Dot-Net

在 C++/CLI 中創建時初始化靜態字典

  • February 28, 2017

今天我看到了創建靜態字典並初始化它的 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++ 中提供它們。

基本上,您的主要選擇是聲明一個靜態建構子並在那裡初始化您的字典。

引用自:https://stackoverflow.com/questions/6021504