HamzaMcBob Ответов: 1

Как использовать impuetext в другой подпрограмме ?


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



``` public static string ExtractingHTML(string urlAddress)
{

// string urlAddress = "https://www.bbc.co.uk/news/uk-politics-50305284";

string ImpureText = строка.Пустой;
HttpWebRequest request = (HttpWebRequest)WebRequest.Создать(URL-адрес);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

если (ответ.Состояния == HttpStatusCode.ОК)
{
Поток receiveStream = ответ.GetResponseStream();
StreamReader readStream = null;

если (ответ.Набор символов == null)
{
readStream = новый StreamReader(receiveStream);

}
еще
{
readStream = новый StreamReader(receiveStream, Encoding.GetEncoding(ответ.Набор символов));
readStream.Метод toString();
//Приставка.WriteLine(readStream);
}

строковые данные = readStream.ReadToEnd();

ImpureText = данные.Метод toString();

Приставка.WriteLine(Нечистый Текст); //


}
вернуться ImpureText;


}

public static void TitleExtraction()
{
строка Titlestart = $"<title>";
строка Titleend = $"";

int titlestart = ImpureText.IndexOf(Titlestart) + Titlestart.Длина; //отсюда до //это регулярное выражение разбивает его
инт titleend = ImpureText.Метод IndexOf(Titleend);
строка PureTexttitle = ImpureText.Substring(titlestart, titleend - titlestart);
Приставка.WriteLine("Title-" + PureTexttitle);



} ````

Что я уже пробовал:

Я думал о добавлении нечистого текста в файл, но это довольно неэффективно
я также превратил подпрограмму в функцию вместо метода, но, вероятно, сделал это неправильно.


Спасибо

Richard MacCutchan

Не используйте локальную переменную в методе, который захватывает текст (как вы сделали здесь). Объявите переменную на уровне класса, чтобы она была доступна из всех методов класса.

1 Ответов

Рейтинг:
0

OriginalGriff

Поскольку это статический метод, у вас есть два варианта:
1) может быть сложным: измените все методы, которые должны получить к нему доступ, чтобы принять его в качестве параметра и передать его по всей системе. Это хорошо, если вы ожидаете несколько экземпляров вашего класса
2) просто: переместите определение за пределы метода. Объявите его вне метода как

private static string impureText = "";
И удалите определение внутри вашего метода. Теперь любой член класса может получить к нему доступ.
Это плохо, если доступ к нему должен получить более одного экземпляра, так как он будет только один impureText переменная для всего класса.