22131


■行いたい事

[code]

    Properties.Settings.Default.Apple;
    
[/code]

とすれば、`Settings.settings`で[名前]`Apple`に設定されている値を取得出来ます。

自分が行いたいのはこの[名前]の部分を直接指定ではなく、  
変数で指定出来ないか考えています。

例えば[名前]`AppleAomori`,[名前]`AppleIwate`と言うような値が設定されている場合

[code]

    string apple = "Apple";
    
    string aomori = "Aomori";
    string iwate = "Iwate";
    
    string AomoRingo = apple + aomori;
    string IwateRingo = apple + iwate;
    
    Properties.Settings.Default.AomoRingo;
    Properties.Settings.Default.IwateRingo;
    
[/code]

当然これは`AomoRingo`の[名前]のプロパティを探しにいくので望む処理では無いです。  
なんとかして変数か何かで読み込ませる方法は無いでしょうか？

■理由  
なぜ、これを実現したいのかと言いますと、  
コンボボックスとテキストボックスの連携を行いたいが為です。

この例で言う産地をコンボボックスで選べるようにして、  
選んだ産地を`"apple"`と結合してそれに該当する値をテキストボックスに表示したいのです。  
できるなら方法は別になんでもよいのですが...  
どなたかご教授願います。


CC BY-SA 3.0
2016-02-15T15:40:56.597
22120
2016-02-16T01:14:02.007
2016-02-16T01:14:02.007
5750
13969
question
c# visual-studio
Settings.settingsのプロパティ値取得に変数を使いたい


リフレクションを使うと次のように書けます。

[code]

    using System.Reflection;
    
    ...
    
    Type t = Properties.Settings.Default.GetType();
    String value = (String)t.GetProperty(AomoRingo ).GetValue(Properties.Settings.Default, BindingFlags.Default, null,null,null);
    
[/code]

`AomoRingo` の内容の文字列のプロパティをゲットしその値（文字列）を取り出しています。  
`value`に`Properties.Settings.Default.AppleAomori`の値が得られます。


CC BY-SA 3.0
2016-02-15T17:01:02.547
22123
2016-02-15T17:01:02.547
5044
22120
answer


インデクサ―でアクセスできます。

[code]

    (string)Settings.Default[AomoriRingo]
    
[/code]


CC BY-SA 3.0
2016-02-16T01:02:35.697
22131
2016-02-16T01:07:56.830
2016-02-16T01:07:56.830
5750
5750
22120
answer