可以';I don’我搞不清楚阶级出了什么问题;InitializationException”;
本文关键字:什么 问题 InitializationException 搞不清楚 don 可以 | 更新日期: 2023-09-27 18:24:55
"Game.exe中发生类型为"System.TypeInitializationException"的未处理异常"是我尝试运行程序时收到的错误。它说它构建时有0个错误,但它不会启动,当我在调试中运行它时,我会收到这样的消息。
我认为这与这个类有关:
class Sprites
{
private static Bitmap sheet;
private const int TILE_SIZE = 32;
public static Bitmap loadSprite(string file)
{
Bitmap sprite;
sprite = new Bitmap("Content/Sprites/" + file);
return sprite;
}
public static Bitmap getSprite(int x, int y)
{
if (sheet == null)
sheet = loadSprite("char.png");
Rectangle crop = new Rectangle(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE);
System.Drawing.Imaging.PixelFormat format = sheet.PixelFormat;
return sheet.Clone(crop, format);
}
}
这似乎是当它里面的方法被调用时,因为当我在不调用这个类中任何东西的情况下运行时,它是可以的。我的主窗体中没有其他东西,因为我刚刚开始这样做。
现在我尝试使用位图文件,但效果不佳。它在program.cs"Application.Run(new Form1());"中的初始化行出错。它没有告诉我更多。我发布了我的课程,因为它在我不使用的时候运行。
内部form1.cs
static Bitmap[] walkForward = { Sprites.getSprite(2, 0), Sprites.getSprite(2, 1), Sprites.getSprite(2, 2) };
Animation walking = new Animation(walkForward, 10);
public Form1()
{
InitializeComponent();
}
完整错误输出到文本文件:
System.TypeInitializationException:"Game.Form1"的类型初始值设定项引发异常。--->System.ArgumentException:参数无效。位于System.Drawing.Bitmap.ctor(字符串文件名)在c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Sprites.cs:line 19中的Game.Sprites.loadSprite(字符串文件)在Game.Sprites.getSprite(Int32 x,Int32 y)中,位于c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Sprites.cs:line 27位于c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Form1.cs:line 15中的Game.Form1.cctor()---内部异常堆栈跟踪结束---在Game.Form1..ctor()位于c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Program.cs:line 21 中的Game.Program.Main()
System.ArgumentException:参数无效。位于System.Drawing.Bitmap.ctor(字符串文件名)位于c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Sprites.cs:line 19中的Game.Sprites.loadSprite(字符串文件)在Game.Sprites.getSprite(Int32 x,Int32 y)中,位于c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Sprites.cs:line 27位于c:''Users''tiern''Documents''Visual Studio 2013''Projects''MoveSpites''Game''Form1.cs:line 15 中的Game.Form1.cctor()
发现它在磁盘上找不到文件。它从bin文件夹中读取,而不是从项目的根目录中读取。