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 回答