C#名称在当前上下文中不存在

时间:2015-12-28 15:01:18

标签: c# forms variables

我有ClassForm。这是我在表单中的代码:

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

namespace Tamagotchi
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            label3.Text = "doplntamboredom";
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {
            label6.Text = GetMood();
        }
    }
}

最后一部分(label6.Text = GetMood())正在犯错:

  

当前上下文中不存在名称“GetMood”。

这是我班上的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tamagotchi
{
    class Mazlicek
    {
        private int hunger = 1;
        private int boredom = 1;

        private string mood;
        public string GetMood()
        {
             return mood;
        }

        private void Moods(int hunger, int boredom, string strHunger, string strBoredom)
        {
            if ((boredom + hunger) > 15)
            {
                mood = "Angry!";
            }
            else if ((boredom + hunger) > 10 && (boredom + hunger) < 15)
            {
                mood = "Frustrated..";
            }
            else if ((boredom + hunger) > 5 && (boredom + hunger) < 11)
            {
                mood = "Fine.";
            }
            else
            {
                mood = "Happy!";
            }
        }

    }
}

我不知道为什么会出现这个问题。我正在使用Visual Studio 2015制作它,它只在一个项目中。

2 个答案:

答案 0 :(得分:3)

您可能希望在表单中包含Mazlicek的实例。通过这种方式,您可以调用方法。

因此,首先将变量mazlicek实例化为Mazlicek类型的实例:

public partial class Form1 : Form
{
    private Mazlicek mazlicek = new Mazlicek();

    ...
}

现在我们有一个实例化对象,你可以调用它上面的方法并设置属性来记住它的状态。您必须通过变量名称mazlicek引用它:

private void button3_Click(object sender, EventArgs e)
{
    label6.Text = mazlicek.GetMood();
}

答案 1 :(得分:0)

使用

u

并将其更改为

u

label6.Text = Mazlicek.GetMood();

static class Mazlicek