Делить переменные между классами и методами - PullRequest
5 голосов
/ 30 декабря 2011

Я написал это, и я получаю следующие ошибки.Есть ли какой-нибудь простой способ заставить переменные видеть друг друга?

Предупреждение 1 Переменная 'notepad_running' назначена, но ее значение никогда не используется.

Ошибка 2 Имя 'notepad_running'не существует в текущем контексте.

Ошибка 3 Имя' notepad_list 'не существует в текущем контексте.

public class notepad_check_class
{
    public static void notepad_check()
    {
        Process [] notepad_list = Process.GetProcessesByName("notepad");
        if (notepad_list.Length > 0)
        {
            int notepad_running = 1;
        }
    }
}

public class kill_notepad_class
{
    public static void kill_notepad()
    {
        notepad_check_class.notepad_check();
        if (notepad_running = 1)
        {
            if (MessageBox.Show("Are you sure you want to kill all notepad processes?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            foreach (Process notepad_process in notepad_list)
            {
                notepad_process.Kill();
            }
            return;
        }
        else
        {
            MessageBox.Show("Cannot find any running process of notepad.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }
    }
}

Ответы [ 3 ]

5 голосов
/ 30 декабря 2011

Вы можете сделать это, поместив общедоступные статические свойства в notepad_check_class:

public static Process[] NotepadList { set; get; }
public static int NotepadRunning { set; get; }

Однако я бы предложил только один класс:

public static class NotepadManager {

  private static Process[] NotepadList { set; get; }
  private static int NotepadRunning { set; get; }

  public static void Check() { ... }
  public static void Kill() { ... }

}
1 голос
/ 30 декабря 2011

Вы можете сделать их public static. Это был бы грубый код, переработанный для исправления ошибок компиляции.

public class notepad_check_class
{
    public static Process[] notepad_list;
    public static bool notepad_running;

    public static void notepad_check()
    {
        notepad_list = Process.GetProcessesByName("notepad");

        notepad_running = notepad_list.Length > 0;
    }
}

public class kill_notepad_class
{
    public static void kill_notepad()
    {
        notepad_check_class.notepad_check();

        if (notepad_check_class.notepad_running)
        {
            if (MessageBox.Show("Are you sure you want to kill all notepad processes?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                foreach (Process notepad_process in notepad_check_class.notepad_list)
                {
                    notepad_process.Kill();
                }
            return;
        }
        else
        {
            MessageBox.Show("Cannot find any running process of notepad.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }
    }
}
0 голосов
/ 30 декабря 2011
 public class notepad_check_class
    {
        public int notepad_running;
        public static void notepad_check(notepad_check_class npc)
        {
            Process [] notepad_list = Process.GetProcessesByName("notepad");
            if (notepad_list.Length > 0)
            {
                npc.notepad_running = 1;
            }
        }
    }

    public class kill_notepad_class
    {
        public notepad_check_class npc;
        public kill_notepad_class() {
           npc = new notepad_check_class();
        }
        public static void kill_notepad()
        {
            notepad_check_class.notepad_check(notepad_check_class npc);
            if (npc.notepad_running = 1)
            {
                if (MessageBox.Show("Are you sure you want to kill all notepad processes?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    foreach (Process notepad_process in notepad_list)
                    {
                        notepad_process.Kill();
                    }
                return;
            }
            else
            {
                MessageBox.Show("Cannot find any running process of notepad.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
    }

да да!

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