简体   繁体   English

我的 C# 代码有什么问题? 可能括号太多?

[英]What is wrong with my C# code? Possibly too many brackets?

sorry for the poor title, as it shows I seem to have a massive error with my code, all was going well until I changed the method of loading data from a previous screen (changing it from loading xml to txt).对不起,标题很差,因为它表明我的代码似乎有一个巨大的错误,一切都很顺利,直到我更改了从前一个屏幕加载数据的方法(将其从加载 xml 更改为 txt)。 After seeing all these errors I assumed it was the code I had written so I removed it and it still won't work.看到所有这些错误后,我认为这是我写的代码,所以我删除了它,但它仍然无法工作。

After searching for an answer in previous questions people seem to think it's an extra bracket or semicolon, but to my best effort (even though my eyes aren't amazing) I can't seem to find the problem.在之前的问题中寻找答案后,人们似乎认为这是一个额外的括号或分号,但尽我最大的努力(即使我的眼睛并不神奇),我似乎找不到问题所在。

Thank you in advance.先感谢您。 I appreciate it and although this might seem like a silly question, I just can't seem to find the issue.我很感激,虽然这似乎是一个愚蠢的问题,但我似乎无法找到问题所在。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace Planet_of_fightcraft_final_build
{
/// <summary>
/// Interaction logic for PartySelectionScreen.xaml
/// </summary>
public partial class PartySelectionScreen : Window
{
    public PartySelectionScreen()
    {
        InitializeComponent();
    }

    // When the partySelectionScreen is loaded
    // it will deserialize and read the NameData.xml file
    // and will populate the charName and charStats textboxes
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {


        XmlSerializer sr = new XmlSerializer(typeof(NameSavingInformation));
        FileStream read = new FileStream("NameData.xml",
            FileMode.Open, FileAccess.Read, FileShare.Read);

        NameSavingInformation nameInfo = (NameSavingInformation)sr.Deserialize(read);
        charNameTextBox.Text = nameInfo.GeneratedName;

        // Setting the values of the user characters stats 
        // ucs = user class stats
        userClassStats ucs = new userClassStats();

        /*------Character Stats------*/
        ucs.H = 200;
        ucs.AP = 75;
        ucs.CA = 125;
        ucs.S = 100;
        //---------------------------//

        string health = "Health: " + ucs.H;
        string attackPower = "Attack Power: " + ucs.AP;
        string criticalAttack = "Critical Power: " + ucs.CA;
        string speed = "Speed: " + ucs.S;
        /*------Character Stats------*/

        string nl = "\n \n";
        charStatsTextBox.Text =
            health + nl +
            attackPower + nl +
            criticalAttack + nl +
            speed;
    }



    // This sets a limit on how many party memebers can be added into the listbox at one time
    public int limit = 10;
    public string limitMsg = "You have reached the maxmimum amount of party memebers, please delete some and try again.";

    private void generatePartyButton_Click(object sender, RoutedEventArgs e)
    {
        // Array of party members that can be randomly generated into the listbox.
        string[] partyMembers =
        {
            "Barbarian",
            "Elf",
            "Wizard",
            "Dragon",
            "Knight"
        };

        Random r = new Random();


        // This checks to see if there are allready existing party members in the list box, if so it will
        // prompt the user asking them for confirmation that they want to re - generate the list.
        // If yes it will clear all the items and re add new ones.
        if (partyMembersListBox.Items.Count <= limit)
        {
            partyMembersListBox.Items.Clear();

            for (int i = 0; i < 1; i++)
            {
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
            }

        }



    }

    // This will allow the user to edit the stats of the selected party memeber from the listbox
    private void editStatsButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.SelectedItem.ToString() == "Barbarian")
        {
            BStatsEditing bStatsEditing = new BStatsEditing();
            bStatsEditing.Show();
        }
        else if (partyMembersListBox.SelectedItem.ToString() == "Elf")
        {
            EStatsEditing eStatsEditing = new EStatsEditing();
            eStatsEditing.Show();
        }
    }

    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addBarbarianButton_Click(object sender, RoutedEventArgs e)
    {

        if (partyMembersListBox.Items.Count < limit)
        {
            // bc = Barbarian Character.
            string bc = "Barbarian";

            partyMembersListBox.Items.Add(bc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }

    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addElfButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            // ec = Elf Character.
            string ec = "Elf";

            partyMembersListBox.Items.Add(ec);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addWizardButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            // wc = Wizard Character.
            string wc = "Wizard";

            partyMembersListBox.Items.Add(wc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addDragonButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            //dc = Dragon Character.
            string dc = "Dragon";

            partyMembersListBox.Items.Add(dc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addKnightButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            //kc = Knight Character.
            string kc = "Knight";

            partyMembersListBox.Items.Add(kc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // This allows the user to delete one or more chosen characters from the listbox.
    private void deletePartyMember_Click(object sender, RoutedEventArgs e)
    {
        if (this.partyMembersListBox.SelectedIndex >= 0)
        {
            this.partyMembersListBox.Items.RemoveAt(this.partyMembersListBox.SelectedIndex);
        }
    }

    // This will save the current party members to the PartyData.txt file
    private void savePartyButton_Click(object sender, RoutedEventArgs e)
    {
        System.IO.StreamWriter SaveFile = new System.IO.StreamWriter("PartyData.txt");
        foreach (var item in partyMembersListBox.Items)
        {
            SaveFile.WriteLine(item.ToString());
        }
        SaveFile.Close();
    }

    // This will search for the PartyData.txt file 
    // if it is found it will load the party data and populate the partyMembersListBox with said data
    // if it cannot be found a messagebox will inform the user and prompt them to create a new party.
    private void loadPartyButton_Click(object sender, RoutedEventArgs e)
    {
        if (File.Exists("PartyData.txt"))
        {
            string[] lines = File.ReadAllLines("PartyData.txt");
            foreach (string line in lines)
            {
                partyMembersListBox.Items.Add(line);
            }
        }
        else
        {
            MessageBox.Show("Unable to find existing party data, please create a new party!");
        }
    }
}
}

You've closed your class prematurely.你提前关闭了你的课程。 Depending on your editor, you chould have a red squiggly line just before your Window_Loaded remove one close bracket just before you declare your int limit .根据您的编辑器,您应该在Window_Loaded之前有一条红色波浪线,在您声明int limit之前删除一个Window_Loaded括号。 This is the updated code:这是更新后的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace Planet_of_fightcraft_final_build
{
/// <summary>
/// Interaction logic for PartySelectionScreen.xaml
/// </summary>
public partial class PartySelectionScreen : Window
{
    public PartySelectionScreen()
    {
        InitializeComponent();
    }

    // When the partySelectionScreen is loaded
    // it will deserialize and read the NameData.xml file
    // and will populate the charName and charStats textboxes
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {


        XmlSerializer sr = new XmlSerializer(typeof(NameSavingInformation));
        FileStream read = new FileStream("NameData.xml",
            FileMode.Open, FileAccess.Read, FileShare.Read);

        NameSavingInformation nameInfo = (NameSavingInformation)sr.Deserialize(read);
        charNameTextBox.Text = nameInfo.GeneratedName;

        // Setting the values of the user characters stats 
        // ucs = user class stats
        userClassStats ucs = new userClassStats();

        /*------Character Stats------*/
        ucs.H = 200;
        ucs.AP = 75;
        ucs.CA = 125;
        ucs.S = 100;
        //---------------------------//

        string health = "Health: " + ucs.H;
        string attackPower = "Attack Power: " + ucs.AP;
        string criticalAttack = "Critical Power: " + ucs.CA;
        string speed = "Speed: " + ucs.S;
        /*------Character Stats------*/

        string nl = "\n \n";
        charStatsTextBox.Text =
            health + nl +
            attackPower + nl +
            criticalAttack + nl +
            speed;
    }



    // This sets a limit on how many party memebers can be added into the listbox at one time
    public int limit = 10;
    public string limitMsg = "You have reached the maxmimum amount of party memebers, please delete some and try again.";

    private void generatePartyButton_Click(object sender, RoutedEventArgs e)
    {
        // Array of party members that can be randomly generated into the listbox.
        string[] partyMembers =
        {
            "Barbarian",
            "Elf",
            "Wizard",
            "Dragon",
            "Knight"
        };

        Random r = new Random();


        // This checks to see if there are allready existing party members in the list box, if so it will
        // prompt the user asking them for confirmation that they want to re - generate the list.
        // If yes it will clear all the items and re add new ones.
        if (partyMembersListBox.Items.Count <= limit)
        {
            partyMembersListBox.Items.Clear();

            for (int i = 0; i < 1; i++)
            {
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
                partyMembersListBox.Items.Add(partyMembers[r.Next(0, 4)]);
            }

        }



    }

    // This will allow the user to edit the stats of the selected party memeber from the listbox
    private void editStatsButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.SelectedItem.ToString() == "Barbarian")
        {
            BStatsEditing bStatsEditing = new BStatsEditing();
            bStatsEditing.Show();
        }
        else if (partyMembersListBox.SelectedItem.ToString() == "Elf")
        {
            EStatsEditing eStatsEditing = new EStatsEditing();
            eStatsEditing.Show();
        }
    }

    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addBarbarianButton_Click(object sender, RoutedEventArgs e)
    {

        if (partyMembersListBox.Items.Count < limit)
        {
            // bc = Barbarian Character.
            string bc = "Barbarian";

            partyMembersListBox.Items.Add(bc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }

    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addElfButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            // ec = Elf Character.
            string ec = "Elf";

            partyMembersListBox.Items.Add(ec);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addWizardButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            // wc = Wizard Character.
            string wc = "Wizard";

            partyMembersListBox.Items.Add(wc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addDragonButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            //dc = Dragon Character.
            string dc = "Dragon";

            partyMembersListBox.Items.Add(dc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // The user can choose their team without random generation.
    // this will check to see if the count of items in the list box is less than the limit
    // if so it will manualy add the - character, else it will show a messagebox informing them
    // they have reached the maximum amount of characters and must delete some.
    private void addKnightButton_Click(object sender, RoutedEventArgs e)
    {
        if (partyMembersListBox.Items.Count < limit)
        {
            //kc = Knight Character.
            string kc = "Knight";

            partyMembersListBox.Items.Add(kc);
        }
        else
        {
            MessageBox.Show(limitMsg);
        }
    }


    // This allows the user to delete one or more chosen characters from the listbox.
    private void deletePartyMember_Click(object sender, RoutedEventArgs e)
    {
        if (this.partyMembersListBox.SelectedIndex >= 0)
        {
            this.partyMembersListBox.Items.RemoveAt(this.partyMembersListBox.SelectedIndex);
        }
    }

    // This will save the current party members to the PartyData.txt file
    private void savePartyButton_Click(object sender, RoutedEventArgs e)
    {
        System.IO.StreamWriter SaveFile = new System.IO.StreamWriter("PartyData.txt");
        foreach (var item in partyMembersListBox.Items)
        {
            SaveFile.WriteLine(item.ToString());
        }
        SaveFile.Close();
    }

    // This will search for the PartyData.txt file 
    // if it is found it will load the party data and populate the partyMembersListBox with said data
    // if it cannot be found a messagebox will inform the user and prompt them to create a new party.
    private void loadPartyButton_Click(object sender, RoutedEventArgs e)
    {
        if (File.Exists("PartyData.txt"))
        {
            string[] lines = File.ReadAllLines("PartyData.txt");
            foreach (string line in lines)
            {
                partyMembersListBox.Items.Add(line);
            }
        }
        else
        {
            MessageBox.Show("Unable to find existing party data, please create a new party!");
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM