1

私はこの構造体定義を持っています:

public struct Icon {
  public Bitmap bitmap;
  public Bitmap g_bitmap;
  public int bitmap_ID;
  public int g_bitmap_ID;
} 

Icon current = new Icon();

次に、ファイルからビットマップをロードしようとしました:

current.bitmap = new Bitmap(path);
//Create the texture
current.bitmap_ID = TexUtil.CreateTextureFromBitmap(current.bitmap);
current.g_bitmap = new Bitmap(current.bitmap)

他の変数についても同じですが、bitmap/g_bitmap引き続きnull値を持ちbitmap_ID/g_bitmap_IDます0

構造体がどのように機能するかを理解しているかどうかはわかりません (私の以前の経験は C でした)。MSDN のドキュメントを読み込もうとしましたが、何も役に立ちません。

4

1 に答える 1

3

皆さんごめんなさい、私は本当にばかです。私のメソッドへの参照を渡すのを忘れて...

private void Load_Icon(Icon icon, string path) {
  icon.bitmap = new Bitmap(path);
  icon.bitmap_ID = TexUtil.CreateTextureFromBitmap(icon.bitmap);
  icon.g_bitmap = new Bitmap(icon.bitmap);
}

ref最初のパラメーターに a を追加するのを忘れました。このようにして、 のコピー上でローカルにのみ機能しますicon。これは機能します:

private void Load_Icon(ref Icon icon, string path) [...]

許し!

于 2012-07-19T13:17:56.860 に答える