3

这是“Head First CSharp - page 113”的示例我收到以下错误

错误 1 ​​'Guys.Form1.joesCashLabel(object, System.EventArgs)' 是一个'方法',在给定的上下文中无效 c:\temp\Guys\Guys\Form1.cs 20 12 Guys

与其他两个标签相同

这是代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Guys
{
    public partial class Form1 : Form
    {
        Guy Joe;
        Guy Bob;
        int Bank = 100;

        public void UpdateForm()
        {
           joesCashLabel.Text = Joe.Name + "$" + Joe.Money;
            bobsCashLabel.Text = Bob.Name + "$" + Bob.Money;
            bankCashLabel.Text = "Bank has" + Bank;
        }


        public Form1()
        {
            InitializeComponent();

            Guy Bob = new Guy();
            Bob.Name = "Bob";
            Bob.Money =100;

            Guy Joe = new Guy();
            Joe.Name = "Joe";
            Joe.Money =50;

            UpdateForm();

        }

        private void joesCashLabel(object sender, EventArgs e)
        {

        }

        private void bobsCashLabel(object sender, EventArgs e)
        {

        }

        private void bankCashLabel(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (Bank >= 10) 
            {
                Bank -= Joe.ReceiveMoney(10);
                UpdateForm();
            }
            else
            {
                MessageBox.Show("No money in the bank");
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Bank = Bank + Bob.GiveMoney(5);
            UpdateForm();
        }
    }
}
4

2 回答 2

3

这是一个方法(一个事件),

private void joesCashLabel(object sender, EventArgs e)
{

}

但是您将其用作变量

joesCashLabel.Text = Joe.Name + "$" + Joe.Money;

我的猜测是,该事件应该与某种标签相关联。

于 2013-05-14T16:31:15.497 回答
3

你不能在同一个项目中定义两个同名的类型,这里你有三个控件和三个同名的事件。所以删除下面的方法来编译没有错误。

private void joesCashLabel(object sender, EventArgs e){}

private void bobsCashLabel(object sender, EventArgs e){}

private void bankCashLabel(object sender, EventArgs e){}

如果您想添加事件,请确保您遵循命名标准,例如ControlName_EventName

于 2013-05-14T16:44:29.203 回答