トップ回答者
My.Resourcesに配列は定義できますか?

質問
回答
-
Dim a As String = My.Resources.Test0 Dim b As String = My.Resources.Test1 Dim c As String = My.Resources.Test2
のような複数のリソースを、
Dim a As String = My.Resources.Test(0) Dim b As String = My.Resources.Test(1) Dim c As String = My.Resources.Test(2)
のように取得させることはできませんが、
Dim a As String = My.Resources.ResourcesManager.GetString("Test" & CStr(0)) Dim b As String = My.Resources.ResourcesManager.GetString("Test" & CStr(1)) Dim c As String = My.Resources.ResourcesManager.GetString("Test" & CStr(2))
のように記述することはできます。- 回答としてマーク custardpudding 2017年4月13日 3:15
-
有難うございます。
リソース内に配列を持つのは現実的ではないという事ですね。
リソースにしないといけない理由はありません。
VB自体あまり詳しくないのでトンチンカンな事を言うかもしれませんが、
グローバルな定数の保存場所として、リソースを使うのが便利かなと思ったのです。
- 回答としてマーク custardpudding 2017年4月13日 3:15
すべての返信
-
バイナリファイル をリソースに追加すれば、My.Ressources.リソース名 が『As Byte()』という配列を返すようになります。
それ以外の型の配列が必要な場合は、自前で変換するなどして対処してみてください。
たとえばテキストファイルや文字列がリソースに追加されている場合は、As String で得られますので、そこから Split メソッドを併用するなどすれば、String の配列に変換することができるでしょう。
なお、My.Resources ではなく My.Settings の方であれば、Seetings.settings を[右クリック]→[ファイルを開くアプリケーションの選択]→[XML (テキスト) エディター]などから直接編集すれば、<Setting> タグに配列型(たとえば Type="System.String[]" など) を無理矢理に割り当てることはできます。あまり使い勝手が良いものでは無いですが。
-
Dim a As String = My.Resources.Test0 Dim b As String = My.Resources.Test1 Dim c As String = My.Resources.Test2
のような複数のリソースを、
Dim a As String = My.Resources.Test(0) Dim b As String = My.Resources.Test(1) Dim c As String = My.Resources.Test(2)
のように取得させることはできませんが、
Dim a As String = My.Resources.ResourcesManager.GetString("Test" & CStr(0)) Dim b As String = My.Resources.ResourcesManager.GetString("Test" & CStr(1)) Dim c As String = My.Resources.ResourcesManager.GetString("Test" & CStr(2))
のように記述することはできます。- 回答としてマーク custardpudding 2017年4月13日 3:15
-
有難うございます。
リソース内に配列を持つのは現実的ではないという事ですね。
リソースにしないといけない理由はありません。
VB自体あまり詳しくないのでトンチンカンな事を言うかもしれませんが、
グローバルな定数の保存場所として、リソースを使うのが便利かなと思ったのです。
- 回答としてマーク custardpudding 2017年4月13日 3:15