Так что я немного новичок в кодировании C#, и обработка исключений не является одной из моих сильных сторон. Я пытаюсь написать игру в стиле палача, но у меня проблема при попытке выполнить программу. Я получаю сообщение необработанного исключения с текстом «Инициализатор типа для (filename) Form1 выбрал исключение». Я не совсем уверен, как найти, откуда происходит ошибка, кроме того, что я получаю сообщение в файле Program.cs. Я рассматривал здесь подобные проблемы, но ответы очень специфичны для конкретной проблемы. В моем случае мой код выглядит следующим образом:Инициализатор типа для Form1 выбрал исключение
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//set label to blank
answerLabel.Text = "";
//loop through each element in the array
for (int i = 0; i < guessThis.Length; i++)
{
//get each element as a question mark
string unknown = "?";
//add each element as a "?" to the label
answerLabel.Text += unknown;
}
}
/*----------------------------------------------------------------------------------------------------------------------------------------------*/
//initialize array from currentAnswer string
public static char[] guessThis = currentAnswer.ToCharArray();
//create array of strings for answers
public static string[] randomAnswers = new string[10]{"beach", "sword", "sushi", "rat", "joy", "summer", "animal", "baseball", "toyota", "red"};
//set up random
public static Random rand1 = new Random();
//pick a random word from the answers array
public static string currentAnswer = randomAnswers[rand1.Next(0, randomAnswers.Length)];
/*----------------------------------------------------------------------------------------------------------------------------------------------*/
//guess button
private void button1_Click(object sender, EventArgs e)
{
//set a bool for if the user input contains only letters
bool containsLetter = textBox1.Text.Any(x => char.IsLetter(x));
//checks if textbox length is not 1 character
if (textBox1.Text.Length != 1)
{
//display error
MessageBox.Show("Please enter one letter", "Error");
}
//if user input is not a letter
else if (containsLetter != true)
{
//display error
MessageBox.Show("Please enter only letters", "Error");
}
//if all conditions satisfied
else
{
//check if char array contains the user input
if (guessThis.Contains(Convert.ToChar(textBox1.Text)))
{
//get index of any element that contains the userinput
var getIndex = Array.FindIndex(guessThis, row => row.Equals(textBox1.Text));
//set up another array with the values from the label
char[] unknownAnswer = answerLabel.Text.ToCharArray();
//insert user input into the proper index of the char array
unknownAnswer[getIndex] = Convert.ToChar(textBox1.Text);
//update the label
answerLabel.Text = unknownAnswer.ToString();
}
}
}
}
Благодарим за предоставленную помощь.
Было бы еще несколько деталей с Исключением, вы можете рассказать мне о них? –