我有这个结构定义:
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文档,但没有任何帮助。
答案 0 :(得分: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
。通过这种方式,它只能在icon
的副本上本地工作。这有效:
private void Load_Icon(ref Icon icon, string path) [...]
赦免!