正如标题所说,Visual Studio在执行程序时抛出异常。 确切的错误:
An unhandled exception of type 'System.TypeInitializationException' occurred in mscorlib.dll
由于我是使用Visual Studio和C#的新手,我无法辨别出问题所在。我做谷歌,但我发现的信息都没有帮助恢复我的例外程序。
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Game {
public struct entity {
int XP,
HP,
mana,
luck,
strength,
defense;
float modStrength,
modDefense;
string stance;
}
public class Game {
private entity enemy;
private static Dictionary<string, int> playerData =
new Dictionary<string, int>();
public static string[] entityPool =
new StreamReader(Properties.Resources.Entities).ToString().Split('?');
static void Main (string[] args) {
instancePlayer();
Console.ReadKey();
}
private static void instancePlayer () {
string[] playerDataDummy = entityPool[0].Trim().Split(';');
foreach (string s in playerDataDummy) {
string[] indivArr = s.Split(' ');
playerData.Add(indivArr[0], Convert.ToInt16(indivArr[1]));
}
foreach (KeyValuePair<string, int> s in playerData) {
Console.WriteLine("[{0}] {1}", s.Key, s.Value);
}
}
private void instanceEnemy () {
}
}
}
我已经能够将问题缩小到这条线,但是......
public static string[] entityPool = new StreamReader(Properties.Resources.Entities).ToString().Split('?');
这和我一样被发现了;删除它的初始化及其所有引用会使问题无效。但是,我确实需要它。
答案 0 :(得分:0)
看看streamreader class on MSDN。它有几个构造函数和一个从文本文件中读取的简单示例。我不确定你在Properties.Resources.Entities(我假设的文件路径)中有什么。假设这是一个有效的文件路径或流,并且构造函数不会抛出错误,那么您正在创建流读取器,然后调用.ToString(),它为您提供StreamReader对象的字符串表示形式,而不是文件的内容或流。这可能不是你所期望的。 MSDN页面上的示例应该可以帮助您使用StreamReader类。
答案 1 :(得分:0)
这条线错了。
public static string[] entityPool = new StreamReader(Properties.Resources.Entities).ToString().Split('?');
您可能想要的是阅读流的所有内容。这样的事情。
StreamReader sr = new StreamReader(Properties.Resources.Entities);
string[] entityPool = sr.ReadToEnd().Split('?');
最好将此代码放在带有try-catch而不是初始化器的构造函数中。
答案 2 :(得分:0)
看来,不需要StreamReader来访问文件的内容。
string[] entityPool = Properties.Resources.Entities.split('?');
按照我之前的预期工作。
我很欣赏回应,All。