| 分類:[C#]
Windows7以降のOS C# .NetFramework4.0 クラスライブラリに関する質問です。
リソースに画像を定義してリソースをtype1のようにフィールド変数として定義していたのですが、 メモリ消費が大きく、改新しようと考えております。 最初に考えたのがtype2のようにメソッドにする方法なのですが、 こちらもメモリ消費がtype1とあまり変わりませんでした。 そこでtype3のようにcase文で定義することを考えました。 メモリ消費は前述のものに比べて大きく節約できそうなのですが、 冗長で2次元配列の代用にするとさらに間延びしてしまうので困っております。
このような場合に記述が簡潔でメモリを節約できる方法はあるのでしょうか。
//type1 //public static Bitmap[] tabledata = new Bitmap[] //{ // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, //};
public Form1() { InitializeComponent();
GetData(1); }
private Bitmap GetData(int nIndex) {
//type2 //Bitmap[] tabledata = new Bitmap[] //{ // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, // Properties.Resources.Chrysanthemum, //};
//type3 switch (nIndex) { case 0: return Properties.Resources.Chrysanthemum; case 1: return Properties.Resources.Chrysanthemum; case 2: return Properties.Resources.Chrysanthemum; case 3: return Properties.Resources.Chrysanthemum; case 4: return Properties.Resources.Chrysanthemum; case 5: return Properties.Resources.Chrysanthemum; case 6: return Properties.Resources.Chrysanthemum; case 7: return Properties.Resources.Chrysanthemum; case 8: return Properties.Resources.Chrysanthemum; case 9: return Properties.Resources.Chrysanthemum; default: return Properties.Resources.Chrysanthemum; } } |