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

C# 当前上下文中不存在名称“cat”,c#,object,C#,Object,我正在创建的“cat”对象出错。它说它在当前上下文中不存在,即使我刚刚创建了它。我甚至不知道主要的方法是在哪里添加它,所以我只是把它放在部分类的部分。我确信这是不对的,但阅读我的书并没有什么帮助,它只是说要把它放在Visual Basic里面,但并不是确切的位置。我已经习惯了Java,你可以在记事本中创建一个主类,但在VB中却没有。我要问的代码是粗体的,实际上不是Pet类的一部分 考虑到他们采用相同的方法,我没有尝试太多。它应该识别它,但它不是。我在这里/谷歌上看到的每一个答案都表明此人没有正确

我正在创建的“cat”对象出错。它说它在当前上下文中不存在,即使我刚刚创建了它。我甚至不知道主要的方法是在哪里添加它,所以我只是把它放在部分类的部分。我确信这是不对的,但阅读我的书并没有什么帮助,它只是说要把它放在Visual Basic里面,但并不是确切的位置。我已经习惯了Java,你可以在记事本中创建一个主类,但在VB中却没有。我要问的代码是粗体的,实际上不是Pet类的一部分

考虑到他们采用相同的方法,我没有尝试太多。它应该识别它,但它不是。我在这里/谷歌上看到的每一个答案都表明此人没有正确创建对象。在我看来,这完全是应该的:

Pet cat = new Pet("10", "Fido", "Cat");
这是课程的一部分:

namespace PetClassesandObjects
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Pet cat = new Pet("10", "Fido", "Cat");
        cat.GetName();

我将使用对象调用Pet类中的方法。

您的代码位于类级别,但它需要位于方法内部

在类级别定义对象是什么,但在方法中定义对象的功能。它执行的逻辑操作等。只需将代码放入方法中:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void DoSomething()
    {
        Pet cat = new Pet("10", "Fido", "Cat");
        cat.GetName();
    }
}
至于GetName本身应该做什么,或者希望看到什么输出,或者何时调用DoSomething方法,这些都取决于您。但操作本身将在一个方法内

如果仍然需要,您至少可以在类级别定义变量,如果该对象定义了您的表单:


旁注:为你的方法命名比做某事更好的方法。这只是一个人为的例子来说明这一点。变量/方法/类等的好名称很重要,可以帮助您理解自己的代码。

继续David的评论,您只需在表单中添加一个按钮并双击它即可创建存根处理程序。从中可以在标签中显示返回值,例如:

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    Pet cat = new Pet("10", "Fido", "Cat");

    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = cat.GetName();
    }

}

非常感谢。我把我的cat.GetName放在一个按钮点击事件中,它成功了。现在它只是问我参数:“但我可以自己解决这个问题,如果我理解正确的话,你必须将参数传递给GetName。”。
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    Pet cat = new Pet("10", "Fido", "Cat");

    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = cat.GetName();
    }

}