Имя «кошка» не существует в текущем контексте - PullRequest
0 голосов
/ 21 апреля 2019

Я получаю ошибку для создаваемого объекта 'cat'. Он говорит, что он не существует в текущем контексте, хотя я только что создал его. Я даже не знаю, где именно основной метод, чтобы добавить это, так что я просто помещаю это в частичную часть класса. Я уверен, что это не правильно, но читать мою книгу не полезно, она просто говорит, чтобы поместить ее, но не точно, где внутри Visual Basic. Я привык к Java, где вы можете просто создать основной класс в блокноте, но в VB его нет. Код, о котором я спрашиваю, выделен жирным шрифтом и не является частью класса Pet.

Я не очень старался, учитывая, что они в одном методе. это должно признать это, но это не так. каждый ответ, который я вижу здесь / Google, человек не создавал объект должным образом. Для меня это выглядит именно так, как и должно быть:

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.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2019

Ваш код находится на уровне класса, но он должен быть внутри метода.

На уровне класса вы определяете, чем является объект , но в методах вы определяете, что он делает . Логические операции, которые он выполняет, и т. Д. Просто поместите ваш код в метод:

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

    public void DoSomething()
    {
        Pet cat = new Pet("10", "Fido", "Cat");
        cat.GetName();
    }
}

Что касается того, что ожидается от GetName(), или того, что вы ожидаете увидеть, или когда вы будете вызывать метод DoSomething(), это все зависит от вас. Но сама операция будет в методе.

Вы можете хотя бы определить переменную на уровне класса, если вы все еще хотите, если этот объект определяет, какова ваша форма : :

public partial class Form1 : Form
{
    Pet cat = new Pet("10", "Fido", "Cat");

    public Form1()
    {
        InitializeComponent();
    }

    public void DoSomething()
    {
        cat.GetName();
    }
}

(Примечание: назовите ваши методы как-нибудь лучше, чем «Сделайте что-нибудь». Это был просто надуманный пример, чтобы проиллюстрировать эту мысль. Хорошие имена для переменных / методов / классов / и т. Д. Важны и помогут вам понять ваш собственный код). .)

1 голос
/ 21 апреля 2019

Итак, продолжая то, что прокомментировал Дэвид, вы можете просто добавить кнопку в форму и дважды щелкнуть ее, чтобы создать обработчик заглушки.Оттуда вы можете отобразить возвращаемое значение в метке, например:

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();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...