C # Вызов функции в классе из другого класса. - PullRequest
0 голосов
/ 25 октября 2010

Начну с того, что я не разработчик.Да, это AC # кошмар.Но это единовременный инструмент, вот и все.Быстрый и грязный, он просто должен работать, вот и все.

У меня есть следующий код:

        public string[] get_status(string local_fname)
    {
        var dts_doc = new HtmlAgilityPack.HtmlDocument();
        dts_doc.Load(local_fname);

        //Pull the values
        var ViewState = dts_doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/input[4]/@value[1]");
        var EventValidation = dts_doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[2]/input[1]/@value[1]");

        string ViewState2 = ViewState.Attributes[3].Value;
        string EventValidation2 = EventValidation.Attributes[3].Value;


        //Display the values

        //System.Console.WriteLine(ViewState.Attributes[3].Value);
        //System.Console.WriteLine(EventValidation.Attributes[3].Value);
        //System.Console.ReadKey();
        return new string[] { ViewState2, EventValidation2 };
    }

Я хочу вызвать get_status из кнопки на моем Main.cs, которая покажет 2Ящики сообщений с ViewState2 и EventValidation2.

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

Ответы [ 3 ]

2 голосов
/ 25 октября 2010

Сделайте функцию статической, добавив ключевое слово static в определение функции:

статическая открытая строка [] get_status (строка local_fname)

Используйте имя класса для ссылки на функцию из вашего основного класса.

2 голосов
/ 25 октября 2010

попробуйте это:

foreach(string s in get_status(localFname))
{
    MessageBox.Show(s);
 }

Как вы сказали, это быстро и грязно, и я остался верен этой парадигме.

И да, если вам нужно перейти в другой класс,метод static или просто создайте экземпляр и вызовите метод для него.Надеюсь, я правильно понял проблему.

0 голосов
/ 25 октября 2010

Если вы используете Visual Studio, перейдите к кнопке, которую вы хотите нажать, дважды щелкните по кнопке. Это создаст обработчик событий. В обработчике событий вы должны вызвать вышеуказанный метод.

protected void Button1_Click(object sender, eventArgs e)
{
   string local_fname = someValue;
   string results[] = get_status(local_fname);
   MessageBox.Show(results[0]);
   MessageBox.Show(results[1]);
}
...