C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# コードの簡略化

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■95591 / inTopicNo.1)  C# コードの簡略化
  
□投稿者/ つらむ (11回)-(2020/08/21(Fri) 19:00:40)

分類:[C#] 

お世話になっております。
WPF VS2019です。

以下のクラスがあります。
    public class Config
    {
        public int Count0 { get; set; }
        public int Count1 { get; set; }
	......
        public int Count1000 { get; set; }
    }

これを使って、以下のような書き方は出来ないでしょうか。

Config config = new Config();
config.Count+"0" = config.Count+"0" + 1;

(全ての項目に同じ値を入れる時に、1000行書くことを避けたいです。
上記の書き方が出来れば、loopで簡略化できると思うのですが......)

引用返信 編集キー/
■95593 / inTopicNo.2)  Re[1]: C# コードの簡略化
□投稿者/ 魔界の仮面弁士 (2820回)-(2020/08/21(Fri) 21:10:50)
No95591 (つらむ さん) に返信
> public int Count0 { get; set; }
int[] Count { … } では駄目なのでしょうか。あるいはインデクサにするとか。
もしくは Config クラスではなく Dictionary<string, int> で管理するとか。


> これを使って、以下のような書き方は出来ないでしょうか。
クラス側を変更できないとなると、あとはリフレクションとか。

var props = typeof(Config).GetProperties().Where(p => p.Name.StartsWith("Count"));
foreach (var p in props)
{
  dynamic count = p.GetValue(config);
  p.SetValue(config, count + 1);
}
引用返信 編集キー/
■95594 / inTopicNo.3)  Re[2]: C# コードの簡略化
□投稿者/ つらむ (12回)-(2020/08/21(Fri) 22:08:31)

クラス側を変更出来なかったので、リフレクションを使用しました。
ご指導ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ